j - 参数用法:ti=.{.(*i.)}
问题描述
我正在努力解决问题J
。在easy-j.pdf
(可在此处获得;第 19 页)介绍中有这个钩子:
ti=.{.(*i.)}. NB. ti=times index generator
ti 2 5 NB. Usage
我理解上一个术语:2(*i.)5 NB. 2 times 0 1 2 3 4
我可以理解/想象}.
从参数列表(上图)中获取最后一个元素2 5
来创建(*i.)5
. 但是,是什么让参数列表也以某种方式传递{.
给检索2
(在我目前的理解中,参数已经被 使用}.
)清楚/明显?
我希望这个问题能被J
专家理解。
解决方案
ti
实际上是一个带有三个尖齿的一元叉,都是动词。执行的方式是两个外部尖叉{.
和}.
在参数上执行,2 5
结果作为中间尖叉的左右参数提供,中间尖叉(* i.)
本身就是一个钩子。
在 J 中,fork 操作通常用和来表示,代表动词,f
and代表左右参数,fork 的计算方式如下:g
h
x
y
(f h g) y <-> (f y) h (g y) NB. <-> is a meta symbol for equivalency - not J symbols
在这种情况下f y
是{. 2 5
和g y
是}. 2 5
{. 2 5
2
}. 2 5
5
叉子的中间叉齿始终是二叉的,因为它是从两个外部叉齿馈入的,而中间的二叉钩的构造(* i.)
是
x (f g) y <-> x f (g y)
2 (* i.) 5 NB. 2 * (i. 5)
0 2 4 6 8
推荐阅读
- node.js - aws.config.credentials 是否一次只处理一个用户?因为 globalSignout 正在注销所有用户
- angular - 在 ngx-mapboxgl 地图上显示 div
- javascript - 搜索和维护值
- android - 无法在wearos 蓝牙上发送HTTP 请求
- javascript - 你如何随机化某些数字?
- java - 如何在 NetBeans 上运行项目时删除“set build.dir”错误
- sql-server - 使用其他表中的值在表上创建主键
- unity3d - 在 Oculus 上突出显示触摸控制器按钮以进行教程
- mysql - MySQL 与 PostgreSQL 重复
- socket.io - Cloud Firestore - 两个播放器 - 检测断开连接 [Flutter]