果冻,47个整数,519字节
e
BI$⁼#
⁾⁾⁾Ụ^/
ı***ıḞḞ
5
6
7
.::::
9
EȮ<
⁻GṘ
=`p`VV×`DQV
~A~A~A~A~A~A~A~A~A~A~A~A~A
⁷ṾṾṾw
⁴ḟ€⁴Ṁ
mmmmċ
ṭṭṭṭṭṭṭṭḍḄḄḄḄḄḄḄḄḄ
+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ
CNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNC
ĖḌĖḌ
ṫṣȦJṫȦ⁸ȦJ
22
“@ṃ»
!ḤḤ!
³HH
ØaM
;;;;;;;;;;;;;;;;;;;;;;;;;;;¬¬ḅ¬
irið8c
⁶ḲĠṂ°İṂĊ
œṡ¹ẆẆTUṖṖṖṖP
ȷ½RṪ
LµdddddµFL
33
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWŒḊ
ẇɓæ«æ«æ«æ«æ«|æ«|
⁹ṚḢ²
‘‘‘0‘‘‘‘‘‘‘
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ạ
-____---__________
”(O
⁵ḶxḶ⁵ị⁵ḶxḶḣṢ
⁽{ʂ%⁽{}
ẊẠżv©żvżvżvọ®®Ạżvżvżvọ®
44
111111l11&K1111111Kl11&
,SS¶ỊỊ,ÇS¶ÇÑÇÇÇÑ
ÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆn
每行都是一个单独的完整程序。
在线尝试!(包括测试套件和交集检查器)
这个怎么运作
每个不带命令行参数的完整程序都将以恶意方式(即,无需输入)执行其主链接(在最后一行定义)。如果链中的第一个链接是nilad,则将其消耗,调用,并将主链接的参数和返回值都设置为结果;如果链中的第一个链接是monad或dyad,则不使用它,而是使用隐式参数和返回值0。在这两种情况下,链的其余部分均单价执行。
果冻在几种情况下会破坏其输出。值得注意的是,单例数组的打印没有括号,因此42和[42]在打印后无法区分。我们将在多种场合使用它。
1 – 10
e
的存在,如果返回值原子试验0属于参数0。确实如此,因此e
返回1。
BI$⁼#
BI$
是一个快速链接,特别是通过$
对二进制原子B
和增量原子进行快速分组而形成的单子链I
。结合起来,它们将整数转换为以2为底的数字数组,然后计算所得数字的正向差。如果数组只有一个元素,则没有前向差异,并I
返回一个空数组(falsy);如果至少有两位数字,则I
返回一个非空数组(真)。
快速#
消耗之前的快速链接,并将其应用于0,1,2,...,直到有足够找到匹配的回报相匹配的阵列。所需的金额由计算⁼
,将返回值/参数0与自身进行比较,得出1。因此,整个程序返回[2],即以2为底的两位非整数。
⁾⁾⁾Ụ^/
⁾⁾⁾
是字符串文字,特别是字符串⁾⁾。该等级可原子Ụ
可以通过相应的值排序其指数; 由于两个字符相等,因此得出[1,2]。结果数组将按位XOR进行缩减^/
,因此整个程序返回3。
ı***ıḞḞ
ı
初始化参数,并将值返回到虚数单位i。*
是幂二乘,其正确参数默认为主链接的参数。因此,***ı
单位计算(第(i 我)我)我 ≈4.81 + 0I中,Ḟ
原子(地板对真实参数,实部为复杂的)计算实部(4.81),则Ḟ
地板,得到4。
5
6
7
这三个程序由单个文字组成,并且完全满足您的期望。
.::::
文字.
是0.5的简写,并初始化参数和返回值。该整数除法成对的(:
)右参数默认到主链接参数,所以::::
计算0.5 / 0.5 / 0.5 / 0.5 / 0.5,得到8。
9
另一个字面意思。
EȮ<
的所有等于原子E
返回1,如果在它的参数的所有元素是相等的,和0如果不是。整数参数z被提升为[z],因此隐式参数0E
将返回1。
现在,输出原子将1Ȯ
打印到STDOUT。然后,我们使用小于原子将1与隐式参数0进行比较。结果是(1 <0)= 0,并且在程序完成时隐式打印。<
11 – 20
⁻GṘ
该网格原子G
试图从它的参数使视觉上令人愉悦的表。对于纯整数参数(此处为0),它只是将其包装在数组中。该扁平不等于原子⁻
的隐含参数进行比较0,其结果,以(右侧[0] ),得到1因为它的参数是不相等的。的表示原子Ṙ
打印1至STDOUT并返回其结果。在程序结束时,最终的返回值是隐式打印的,因此最终输出为11。
=`p`VV×`DQV
该自快`
用相同的左边和右边的参数调用它变成一个对子成单子。首先,=`
将隐式参数0与自身进行比较,得出1。
的笛卡尔乘积原子p
期望列表作为其参数,所以它促进整数1到范围[1,...,1] = [1] 。p`
取[1]及其本身的笛卡尔积,得出[[1,1]]。
该EVAL原子V
接通所有平面阵列(仅包含数字和字符)转换成字符串,然后计算所得到的字符串作为译注果冻程序。首先将[[1,1]]转换为[“ 11”],然后V
评估字符串,产生[11]。再一次,V
将此数组转换为“ 11”,然后求和以得出11。
现在,×`
将11与其自身相乘,得出121。所述的十进制原子变为121到[1,2,1] ,所述独特原子Q
丢弃第二1,并V
再次接通的数字的列表转换成从串联它们,返回所得到的整数12。
~A~A~A~A~A~A~A~A~A~A~A~A~A
~
是按位非原子。使用二进制补码算法,它将参数z映射到〜z =-(z + 1)。A
是绝对值原子,因此它映射-(z + 1)= z + 1。初始返回值为0时,~A
返回13的十三份副本。
⁷ṾṾṾw
该常量⁷
保存换行符'\ n'并初始化参数和返回值。
所述uneval原子Ṿ
尝试创建它的参数的字符串表示ž使得由这个码的果冻程序将返回ž。
第一个调用忠实地返回字符串“” \ n”,这是一个字符文字。下一个调用返回“””,“ \ n” –一对字符文字。第三次也是最后一次调用返回“”,“”,“,”,“ \ n” –字符字面量的五联体。
最后,窗口索引原子w
将其正确的参数'\ n'提升为字符串“ \ n”并找到以“ \ n”开头的子字符串的第一个索引。返回14。
⁴ḟ€⁴Ṁ
⁴
是常数16。的快速链接filterfalse各(ḟ€
)促进其左边的参数16到范围[1,...,16] ,然后用其元素迭代。
对于每个元素z,都将ḟ⁴
被执行,首先将z提升为[z],然后删除所有(如果有的话)出现的16。这将产生数组[[1],[2],…,[14],[15],[]],其中最后一个数组为空,因为它包含16。
最后,最大原子Ṁ
选择[15]。
mmmmċ
用参数x(数组)和y(整数)调用的模块化原子通常采用每个| y |。个的元素X,从第一个开始,如果Y> 0,和最后如果ý<0 。但是,当y = 0时,它将返回x及其反向。m
左整数参数0首先被提升为[0]。m
连接的第一个副本与自身连接[0],产生[0,0]。其余的副本将此结果转换为[0,0,0,0],然后转换为[0,0,0,0,0,0,0,0],最后是[0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0]。
最后,count原子ċ
计算隐式参数0在结果数组中出现的次数,返回16。
ṭṭṭṭṭṭṭṭḍḄḄḄḄḄḄḄḄḄ
ṭ
是粘性原子,并将其左参数附加到其右参数。由于ṭ
和以下ḍ
都是二进位的,因此所有ṭ
将隐式参数0作为正确参数传递给的调用ṭ
。第一个调用返回[0,0],第二个返回[0,[0,0],第八个和最后一个[0,[0,[0,[0,[0,[0,[0,[0,[0, 0]]]]]]]]]。
ḍ
是可整除原子;为参数X和ÿ,它返回1是X是整除ÿ,0如果不是。Ḅ
是整数的no-op,因此对于构造的数组中的每个整数,将0的可除性ḍḄ
测试为0。0本身可以被整除,因此我们得到[1,[1,[1,[1,[1,[1,[1,[1,1]]]]]]]]]]]]。
现在,二元原子Ḅ
在平面阵列上运行。对于一对[a,b],它仅返回2a + b。正如前面提到的,Ḅ
是一个空操作为整数:一个整数参数Ç被提升为并[c]和[C]中的任何碱是简单地Ç。
第一次调用Ḅ
将[1,1]减少为3,从而产生[1,[1,[1,[1,[1,[1,[1,3]]]]]]]]]]。下一个调用将[1,3]减少到5,将下一个[1,5]减少到7,依此类推,直到第九个Ḅ
返回17为止。
+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ
Ṇ
是平面逻辑NOT原子,并将隐式参数0映射到1。+
是加法原子,因此+Ṇ
递增的十八个副本中的每个副本都返回先前的返回值(最初为0)。整个程序因此返回18。
CNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNC
C
是补原子,并将其参数z映射到1-z。N
是取反原子,并将其参数z映射到-z。一起CN
将z映射到-(1-z)= z-1,因此18个副本将隐式参数0转换为-18。C
收益率的最终应用1 - (-18) = 19
。
ĖḌĖḌ
该枚举原子Ė
枚举在阵列的项,创建索引值对。隐式参数0提升为[0],然后Ė
产生[[1,0]]。所述undecimal原子将从基座10的平坦阵列为整数,得到[10]在这种特殊情况下。
第二个调用Ė
将[10]转换为[[1,10]],第二个Ḍ
最终将其转换为[20]。
21 – 30
ṫṣȦJṫȦ⁸ȦJ
所述尾原子ṫ
(成对层)选择它的左论点,即开始索引处的后缀(1型和模块化)在其右参数指定的,推动左整数参数X到[X] 。在两个参数都设置为0的情况下调用时,ṫ
返回[0]。
如果any和all原子的自变量为真,并且在任何深度都不包含零,则Ȧ
返回1,否则返回0。在这里,我们仅将其用作标识函数以返回隐式参数0。原子处的拆分在其右参数0出现时ṣ
将其左参数[0]划分开,因此在此处返回[[],[]]。
的索引原子J
丢弃该返回值的元素,并用它们的索引替换它们,得到的范围[1,2]在该特定情况下。Ȧ
并且ṫ
两者都像以前一样工作,因此它们将[1,2]减少到从最后一个索引开始的后缀,从而产生[2]。
在niladic链接中,常量⁸
保持[]。这是一个无法解析的缺点,也就是说,它无论如何都无法融入链中。结果,先前的返回值([2])被打印到STDOUT,然后替换为nilad的值([])。
由于[]虚假,Ȧ
将其转换为0。的J
原子促进0到[0] ,然后返回其索引(列表[1] ),它是隐式地打印程序完成时。
22
另一个字面意思。Repdigits似乎是使用它们的最佳地方。
“@ṃ»
这使用了Jelly的内置字符串压缩。在Jelly的代码页中,@和are的索引分别为64和220,字符串文字可以包含250个不同的字符,因此首先计算整数250×65 + 220 = 16470。
16470可被3整除,因此商16470/3 = 5490编码可打印的ASCII字符或换行符。有这些96和5490 = 96×57 + 18,也就是说,我们已经解码的可打印的ASCII字符的基于0的索引在18,这是“2”。
我们剩下57,也可以被3整除,因此,商57/3 = 19 = 96×0 + 19在从0开始的索引18处对可打印的ASCII字符进行编码,即'3'。
剩下0 ; 解码过程停止。生成的字符连接起来形成“ 23”
!ḤḤ!
的阶乘原子!
接通隐含参数0到1。对未平分原子的两次调用Ḥ
将1变成2,然后将2变成4。最后,!
计算4!= 24。
³HH
在不存在的命令行参数,常数³
保持100。两个调用所述的H
匝100到50,然后50到25。
ØaM
该常数Øa
保存小写字母。的最大原子M
产生最大项的所有指数,并且由于Ž是最大的小写字母,则结果为[26] 。
;;;;;;;;;;;;;;;;;;;;;;;;;;;¬¬ḅ¬
串联原子的26个副本;
将初始返回值0和默认参数0的 26个实例串联在一起,从而构建了一个由27个零组成的数组。
¬
是逻辑NOT原子,因此;¬
将1附加到零数组中。下一个¬
取反数组中的所有元素,剩下27个1和1个零的数组。
ḅ
是unbase原子,并将其左参数中的数字数组从其右参数中指定的基数转换为整数。ḅ¬
从一元转换为整数,因此只执行求和。对于27个数组,将返回27。
irið8c
原子的索引i
将其左参数0提升为[0],然后在该数组中找到其右参数0的索引,得出1。
的范围原子r
构造从它的升序或降序范围剩下的参数到它的正确的。正确的参数是隐式参数0,因此得出[1,0]。的第二次调用i
查找的索引0在[1,0] ,得到2。
ð
开始一条新的二元链。由于前一条链是尼拉第式的,因此该链的左参数和右参数都将等于第一条链的返回值(2)。c
在组合原子中。对于左参数8和右参数2,它计算8个元素的集合的所有唯一,无序2组合,返回8C2 = 8!/(6!2!)= 28。
⁶ḲĠṂ°İṂĊ
该常数⁶
包含一个空格字符,并将参数和返回值设置为''。的话原子Ḳ
促进了字符“”到单串“”和分裂它在空间,得到[[],[]] 。
该组原子Ġ
团等于元件的所有索引。由于最后一个返回值的两个元素相等,因此此处返回[[1,2]]。的最小原子提取最小(唯一的)这个数组的元素,得到[1,2] 。
的程度原子°
从六十进制度均为整数转换为弧度,得到1°×2π/ 360°=π/ 180和2°×2π/ 360°=π/ 90。的逆原子取乘法逆,得到180 /π≈57.3和90 /π≈28.6。
然后,Ṃ
再次取最小值,得出28.6。最后,细胞原子Ċ
将28.6转换为29。
œṡ¹ẆẆTUṖṖṖṖP
的身份原子¹
返回0的隐含参数0。的周围分割原子œṡ
促进两者的其参数(两个0)至[0] ,然后分裂[0]周围等于邻接子阵列[0] 。这产生[[],[]]。
该滑动窗口原子Ẇ
构建其自变量的所有连续的子阵列。第一个实例将[[],[]]转换为[[[]],[[]],[[],[]]],第二个实例将[[[]],[[]],[[] ,[]]]转换为
[[[[]],[[[]]],[[[],[]]],[[[]],[[]]],[[[]],[ [],[]]],[[[]],[[]],[[],[]]]]。
该事实原子T
列出truthy元素的所有指标。第一层的数组都不为空,因此得出[1,2,3,4,5,6]。在倒放原子U
反转这个数组,得到[6,5,4,3,2,1] 。
pop原子的四个副本Ṗ
删除了最后四个元素,剩下[6,5]。最后,乘积原子P
将这个数组转换为30。
31 – 40
ȷ½RṪ
ȷ
是1×10 3 = 1000的简写。的平方根原子½
得到31.6,其范围原子R
转变成[1,...,31] 。最后,尾原子Ṫ
提取最后一个元素,返回31。
LµdddddµFL
的长度原子L
促进了隐含参数0至[0] ,然后取长度,得到1。µ
启动一条新的单子链,结果1成为其参数。
对于参数x和y,divmod原子d
产生[x / y,x%y]。每个调用的y = 1,因此结果将始终为[x,0]。
第一次调用从x = 1开始,产生[1,0]。d
仅对整数进行运算,因此它会在后续调用中向量化。第二个调用产生[[1,0],[0,0]],第三个调用产生[[ [1,0],[0,0]],[[0,0],[0,0]]],第五个也是最后一个深度为5的数组,其中包含一个1和31个零。
µ
再一次启动一条新的单子链,并且之前的数组成为其参数。所述平坦原子F
unnests该阵列中,产生一个单一的一个和31个零的平面阵列。最后,L
取结果的长度,返回32。
33
另一个字母数字,另一个文字。
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWŒḊ
包装原子的每个实例将其参数z转换为[z]。在初始返回值为0的情况下,所有34个实例的总和为[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] 。最后,深度原子ŒḊ
计算所得数组的最大深度,返回34。
ẇɓæ«æ«æ«æ«æ«|æ«|
的窗口存在原子ẇ
促进两者的其参数(包括默认至0),以[0] ,然后如果** [0] **作为发生的连续子阵列测试[0] 。确实如此,因此ẇ
返回1。
ɓ
开始一条新的二元链。由于前一条链是尼拉第式的,因此该链的左参数和右参数都将等于第一条链的返回值(1)。该链使用两个不同的二进位原子:左移(æ«
)和按位OR(|
)。
以三个或更多个二元组开头的二元链最初会用该链的参数调用第一个二元组。在此,得出1 << 1 = 2。随后的六个dyad被成对地分组(所谓的forks),其中最右边的dyad首先通过链的参数被调用,然后最左边的dyad被调用,并且先前的返回值返回到双方。
对于æ«æ«
,我们得到2 <<(1 << 1)= 2 << 2 = 8。然后,æ«æ«
计算8 <<(1 << 1)= 8 << 2 = 32。现在,|æ«
让我们32 | (1 << 1)= 32 | 2 = 34。
最后,尾随的|
行为就像一个钩子,并以前一个返回值作为左引数,并以链的右引数作为右引数来调用。返回34 | 1 = 35。
⁹ṚḢ²
在不存在第二个参数的,恒定⁹
保持256。的反向原子促进256到阵列[2,5,6]并且逆转它,得到[6,5,2] 。然后,头部原子Ḣ
提取第一个元素,而方形原子²
返回**6²= 36 *。
‘‘‘0‘‘‘‘‘‘‘
的增量原子‘
通过增加它的自变量1,所以‘‘‘
转动的初始返回值0到3。下一个0是无法解析的nilad,也就是说,它无论如何都不适合链。结果,先前的返回值(3)被打印到STDOUT,然后替换为nilad的值(0)。
以下7个的拷贝‘
转这个0到7,其被隐式地打印程序完成时。
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ạ
的减量原子’
通过递减它的参数1,所以38拷贝转初始返回值0到-38。的绝对差原子ạ
计算之间的无符号差-38和隐含参数0,返回38。
-____---__________
-
是-1的简写,并将链接的参数和返回值设置为-1。每个_
都是二元减法原子的实例,如果缺少,其right参数将默认为-1。
首先,-____-
计算(-1)-(-1)-(-1)-(-1)-(-1)= 3。以下的-1是不可解析的nilad,因此将先前的返回值(3)打印到STDOUT,然后替换为nilad的值(-1)。
接下来,-_
计算(-1)-(-1)= 0,其中文字-
设置的左参数,_
并将返回值用作右参数。接下来的九个副本从返回值中_
减去默认参数-1,得出9,在程序完成时隐式打印。
”(O
”(
是字符文字,并且序数原子O
查找其Unicode代码点,得出40。
41 – 47
⁵ḶxḶ⁵ị⁵ḶxḶḣṢ
在不存在第三个命令行参数的,恒定⁵
保持10。所述unlength原子Ḷ
创建一个基于0的范围内,特别是[0,...,9]为参数10,对两侧重复到位原子x
。后者将其左自变量的元素与右自变量的重复进行匹配,并将每个元素重复相应的次数。使用[0,…,9]作为左参数和右参数,因此我们得到零个零,一个一,两个二等,等等。
的索引原子ị
取其右参数的元件在它的左边的一个指定的索引处。使用左参数10(⁵
在其左侧)和右参数[1、2、2、3、3、3、4、4、4、4,…,9](先前的结果),得出4。
到此为止的链之后是不可解析的nilad ⁵
,因此将先前的返回值(4)打印到STDOUT,将返回值设置为10,然后像往常一样解析链的其余部分。
如前所述,⁵ḶxḶ
将产生数组[1,2,2,3,3,3,4,4,4,4,4,...,9]。此时,我们称为排序原子Ṣ
上的参数10,这促进了10至[1,0] ,则排序,以产生[0,1] 。现在,二元头原子从结果左侧获取长度为0和1的前缀,剩下[[],[1]]。打印时,除了1之外什么都看不见。
⁽{ʂ%⁽{}
⁽
及其后两个字符构成数字文字。如果j和k是Jelly代码页中的代码点,并且(j,k)<(124,250 ),我们得到整数1001 + 250j + k。的码点'{' ,'}' ,和'ʂ'是123,125,和167,因此,左字面的计算结果为1001 + 250×123 + 167(= 31918) ,当右边的计算结果为1001 + 250×123 + 125(= 31876)。
由于左整数小于右整数的两倍,因此结果为(…+ 167)%(…+ 125)=(…+ 167)-(…+ 125)= 167- 125 = 42。
ẊẠżv©żvżvżvọ®®Ạżvżvżvọ®
所述洗牌原子Ẋ
随机化其自变量的元素的顺序; 预先将数值参数z提升为[1,…,z]范围。对于隐式参数0,此范围为空,并Ẋ
产生[]。的所有原子Ạ
返回1,如果所有其自变量的元素为truthy,0如果不是。由于空数组不包含虚假元素,因此在此处Ạ
返回1。
带有原子的zipż
(二元组)接受参数x和y并转置对[x,y]。对于整数x和y,这简单地产生[[x,y]],因此ż
使用参数1和0(隐式参数)调用的特定对象返回[[1,0]]。的二进EVAL原子v
接通所有平面阵列(仅包含数字和字符)i中的左边参数成字符串,然后计算所得到的字符串作为与它的合适的参数作为程序的论点单子果冻程序。自[“ 10”]仅由文字组成,这会忽略的正确论点,v
而只会导致[10]。
该副本快速©
重视v
并复制其结果到寄存器。后来出现的召回原子®
(一个nilad)将从寄存器中获取[10]。
接下来的三个żv
工作副本与以前相同,将[10]映射到[[10,0]到[100]映射到…到[10000]。的顺序原子ọ
测试其左侧参数多少次是由它的正确的整除,所以在这里,它计算的顺序10(取出与®
在)10000 = 10 4,得到[4] 。
以下®
是无法解析的nilad,因此将先前的返回值([4])打印到STDOUT,然后替换为nilad的值(10)。Ạ
接下来应用,得到1。(这是必需的,因为此时可以先分析nilad,然后是二元组。)
如前所述,żvżvżv
在当前返回值后附加三个零,将1变成[1000]。最后,以1000 = 10 3ọ®
的顺序计算10的顺序,并在程序完成时将3打印到STDOUT。
44
另一个字母,另一个文字。
111111l11&K1111111Kl11&
首先,文字111111
将参数和初始返回值设置为111111。的其他运行1
也是文字。
l
是对数原子,计算其左参数与右参数中指定的底数的对数。当使用正确的参数11调用111111时,我们得到log 11 111111≈4.85。
的话原子K
连接在空格的list参数,促进数字/字符之后Ž到[Z] 。在这里,我们仅使用它即可将链接的参数111111转换为[111111]。(这里我们不需要数组,但是我们用完了身份原子。)按位AND原子&
将返回值带到双方,如果需要,将其强制转换为整数,然后计算其按位AND。在此特定情况下,它返回[4.85&111111] = [4&111111] = [4]。
以下1111111
是无法解析的nilad,因此将先前的返回值([4])打印到STDOUT,然后替换为nilad的值(1111111)。K
然后将此整数转换为[1111111]。(这再次不是真正需要的,但是此时可以先分析一个尼拉德然后是一个二元组。)
如前所述,l11
计算log 11 1111111≈5.81,然后&
返回[5.81&111111] = [5&111111] = [5]。
,SS
ỊỊ,ÇS
ÇÑÇÇÇÑ
这是唯一包含多个用户定义的链接的程序。最后一个链接是主链接,在程序启动时执行,其余的是帮助程序链接。快速Ç
链接始终引用当前链接上方的链接,并单执行该链接。同样,快速Ñ
链接始终引用当前链接下方的链接(环绕),并且还单执行该链接。
顶部链接由一对原子,
(一个将参数x和y转换为[x,y]的二元组)和和原子S
(一个原子,其将整数参数z提升为[z]并通过加法减少数组参数)组成。当,SS
使用整数参数n调用链接时,它将计算Σ[n,Σn] =Σ[n,n] = 2n。
中间链路由在上述原子,上述快速的Ç
,并且不显着原子Ị
-即产生一个单子1为数值参数Ž与-1≤Z≤1 ,但0对于所有其他。对Ị
整数参数n应用两次实际上将其替换为1,因为第一个参数的输出Ị
(第二个参数的输入)始终无关紧要。然后将此结果与返回值Ç
(用参数n调用)配对,并将结果对减少S
。总计,我们计算Σ[(| n |≤1)≤1,2n] =Σ[1,2n] = 2n +1。
有了这两个辅助链接后,主链接现在可以通过查看其二进制数字来构造任何非负整数。初始返回值为0时,链ÇÑÇÇÇÑ
计算最终结果((((((0×2 +1)×2)×2 +1)×2 +1)×2 +1)×2 =(((5× 2 +1)×2 +1)×2 = 46。
ÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆn
在下一任原子找到的最小正素数严格大于它的参数值。在初始返回值为0的情况下,十五次调用将Æn
计算第十五个质数,即47。