如何在J?

问题描述 投票:0回答:1
四个操作是定义为迭代启动的操作(例如2 ^^ 4 = 2^(2^(2^2))= 65536)

我正在学习J编程语言,并想尝试 ^:(动词的幂)函数。具体而言,我想使用它来默认计算两个数字的四分法。我想默认做到这一点,以便更好地了解J.

中的修饰列车。

到目前为止,我只能编写此代码: ^/@#。它创建了y的x副本列表,并在项目之间插入^,从而有效地产生y ^^ x。但是,我不希望该解决方案,因为它不让X是无限的,并且也不使用 ^:函数。我无法进一步取得进一步的进步。谁能帮我吗?

首先,我认为您的解决方案是为此做的惯用方法。这是表达正确折叠的自然方法。
j tacit-programming
1个回答
0
投票
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

where
^:
(u^:h)~ 2 4
提供(y u y == 2&^)和(y h y == 4)与您喜欢的任何默许形式:

u


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.