gpt4 book ai didi

J : Iverson's `table` function from _A Personal View of APL_

转载 作者:行者123 更新时间:2023-12-04 05:40:12 24 4
gpt4 key购买 nike

A Personal View of APL (就在引用文献之前),Ken Iverson 给出了以下一系列 J 代码片段:

[a=. b=. i. 5
0 1 2 3 4

a +/ b
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8

over=.({.,.@;}.)&":@,
by=. (,~"_1 ' '&;&,.)~
a by b over a !/ b
+-+---------+
| |0 1 2 3 4|
+-+---------+
|1|1 1 1 1 1|
|2|0 1 2 3 4|
|3|0 0 1 3 6|
|4|0 0 0 1 4|
|5|0 0 0 0 1|
+-+---------+

table=. /([`by`]`over`)\
2 3 5 *table 1 2 3 4 5
+-+-------------+
| |1 2 3 4 5|
+-+-------------+
|2|2 4 6 8 10|
|3|3 6 9 12 15|
|4|5 10 15 20 25|
+-+-------------+

所有这些在 J701 中都对我有用,除了最后一个,它给了我:
   table=. /([`by`]`over`)\
2 3 5 *table 1 2 3 4 5
|rank error
| 2 3 5 *table 1 2 3 4 5

我在 original PDF from IBM 中注意到引号看起来更像:
table=. /([`by']`over')\

但这是一个语法错误。

在 J 站点上将 PDF 转换为 HTML 是否存在转录错误,或者 J 的语法是否发生了变化?

最佳答案

我不认为这是有效的 J 语法(我的意思是,它应该做什么);也许是那时,但不再是了。副词table可以简单地定义为:

 table =: 1 :'[ by ] over u/'

我能得到的最接近艾弗森的版本是:
 table =: /([`by`]`over`)

但是你必须唤起( `: )副词的结果:
 2 3 5 (*table`:6) 1 2 3 4 5
┌─┬─────────────┐
│ │1 2 3 4 5│
├─┼─────────────┤
│2│2 4 6 8 10│
│3│3 6 9 12 15│
│5│5 10 15 20 25│
└─┴─────────────┘

关于J : Iverson's `table` function from _A Personal View of APL_,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11357996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com