问题标签 [tacit-programming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1790 浏览

lisp - Lisp 中的隐式编程

是否可以在 Lisp 中使用/实现默认编程(也称为无点编程)?如果答案是肯定的,它已经完成了吗?

0 投票
2 回答
173 浏览

arrays - 如何在 J 的函数中使用两次参数?

我想为学习 J 编写素数函数。到目前为止,我想出了这个:

它工作得很好,除了我应该将数字存储在y变量中。

我如何编写一个可以使用参数的函数?即f 13->1

0 投票
2 回答
659 浏览

function - Haskell 中的隐性函数组合

假设我有一个mean这样定义的函数:

但我希望它以某种默认形式出现,如下所示:

是否有一种内置的 Haskell 方法可以按照这些方式做一些事情,而不必构建我自己的tacit函数(类似这样):

在这种形式中,函数如下所示:

但感觉可能有一种方法可以避免使用诸如此类的显式函数。我是在想; 有没有内置于 Haskell 中的方法来做到这一点?

0 投票
1 回答
612 浏览

for-loop - J 编程初学者循环

有人可以解释一下 J 中的控制结构(特别是 For 和 While 循环)吗?假设我有 a=:1 和 b=:10,我想使用 For/While 循环将 '1' 添加到 'a' 直到 a < b。

所以,通常它会像(在其他语言中)

或者

请帮忙。我知道这很简单,但我不知道如何在循环中执行此操作。

另外,我读到了一些叫做“explicits”的东西。例如:

3 和 0 代表什么?

0 投票
2 回答
214 浏览

j - 是J联想的火车

在编程语言 J 中,一系列动词总是关联的吗?如果是,有证据吗?

0 投票
2 回答
190 浏览

j - J中sum(1/(1+x)^y)的一个好的默认形式是什么

作为初学者练习,我尝试sum(1/(1+0.03)^n for n = 1 to 30使用J 计算以下总和+/%(1 + 0.03)^ >:i.30。我怎样才能把它写成一个简单的默认形式?我所尝试的一切都比上面的显式形式丑得多>:@[ (+/&:%)@:^ >:&i.@]

0 投票
1 回答
214 浏览

j - 在 J 中查找可被 x 和 y 整除的整数

编写我的第一个 J 程序来求解欧拉问题 #1(找到所有低于 1000 且是 3 或 5 的倍数的自然数之和),我得到了以下解决方案:

但是,我很确定有一种巧妙的方法可以做到这一点,而无需使用变量。我尝试使用 fork 重写它,但我不知道如何将 () 之间的表达式替换为应用于3 5and的动词i.1000。有人可以帮助我吗?

0 投票
1 回答
130 浏览

loops - 将列表中的五个连续数字相乘的默认函数:J,j701

我正在研究 Project Euler,我正在处理问题 8,我正在尝试一个简单的蛮力:将数字的每个连续 5 位相乘,用结果列出一个列表,然后找到更高的。

这是我目前正在尝试用 J 编写的代码:

如何将 takeFive 用于 N 的所有索引?我试过:

但它不起作用,我不知道为什么。谢谢你们。

0 投票
1 回答
434 浏览

dice - K N面骰子的不同掷数

我需要计算滚动 K 骰子可能产生的不同可能掷骰的数量,每个骰子都有 N 面。我对 roll 的定义是 {1, 1, 2, 3, 4} 等价于 {1, 4, 3, 1, 2} (顺序无关紧要),但不等于 {1, 1, 3 , 3, 3} (它们不是同一组结果)。例如:Yahtzee 是一个涉及掷 5 个 6 面骰子的游戏——至少最初是在重新掷骰之前——因此不同掷骰的数量为 252。当 N = K 的情况导致OEIS 序列 A001700

如果我没记错的话,这是由“(N-1 + K)选择(N-1)”给出的,或者等效地,“(N + K-1)选择K”,它K ! <: K + N在J中。这导致我有四种不同的默认表示:

  • d =: ([ ! [: <: +). 简单的火车,没有括号,但我需要使用帽子。
  • d =: ([ (! <:) +). 没有上限,但将内钩括起来。
  • d =: (] !&<: +). 只有三个动词训练,但使用 Compose。它使用(<: N) ! <: K + N版本。
  • d =: (([ ! +) * ] % +). 这个将“C(N+K-1, K)”重写为“C(N+K, K) * N / (N+K)”。它更丑陋,但在 0 面 0 骰子的情况下,它给出的是 0 而不是 1,这可以说是一个不那么荒谬的答案。

其中哪一个是最“J-ish”的解决方案?

此外,所有这些的一元案例是没有意义的:1 0 0 0 0 ...对于前三个和0 1 1 1 ...第四个。这个动词的一个更合乎逻辑的单子是反身,由 给出d~,那么将这个动词定义为 会更好(d~ : d)吗?

0 投票
2 回答
4975 浏览

haskell - 什么是 (f .) 。g 在 Haskell 中是什么意思?

我已经看到根据模式定义了很多功能(f .) . g。例如:

这是什么意思?