我正在学习J编程语言,并想尝试 ^:(动词的幂)函数。具体而言,我想使用它来默认计算两个数字的四分法。我想默认做到这一点,以便更好地了解J.
中的修饰列车。到目前为止,我只能编写此代码: ^/@#。它创建了y的x副本列表,并在项目之间插入^,从而有效地产生y ^^ x。但是,我不希望该解决方案,因为它不让X是无限的,并且也不使用 ^:函数。我无法进一步取得进一步的进步。谁能帮我吗?
首先,我认为您的解决方案是为此做的惯用方法。这是表达正确折叠的自然方法。
Fold (F:)
= ==
1 ] F:: (2&^) 4
.
。仅使用
init ] F:: operator times
(假设您是指一般迭代的指数,而不仅仅是hyper-4),您只需重复操作员n时:Power of verb
这里的问题是,您将输入“浪费”到标准的初始值
(2&^)>:4 ] 1
65536
NB. or simply
2 ^^:4 ] 1
。这使得默契的配方有些麻烦。但是,由于初始值和操作员使用相同的常数,因此我们可以将表达式压缩为:
y
要使重复计数默示,您需要使其动态化,因此您需要将所有输入(基础和计数)纳入
1
或(^^:3 ])~ 2
和动词,并将其适当地喂入x
。例如,您可以:
y
^:
和(u^:h)~ 2 4
提供(y u y == 2&^)和(y h y == 4)与您喜欢的任何默许形式:
u