You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅指定一次&.I来简化单目tacit fork定义F&.I G H&.I?

简化J语言中带Under的Tacit Fork

针对你提出的单目tacit fork F&.I G H&.I(F和H先通过&.I处理后再传入G),是否能简化为仅写一次&.I,分两种情况讨论:

1. 当G满足同态条件时,可用(F G H)&.I

如果动词G满足同态性质:I^:_1 (a G b) = (I^:_1 a) G (I^:_1 b)(即G在I的逆变换下保持运算逻辑),比如G是加法+、乘法*这类线性运算,且I是可逆线性变换(如*2),此时(F G H)&.I完全等价于你的原结构。

推导逻辑:

(F G H)&.I y = I^:_1 ( (F (I y)) G (H (I y)) )

根据同态条件,上式可转化为:

(I^:_1 (F (I y))) G (I^:_1 (H (I y))) = (F&.I y) G (H&.I y)

2. 当G不满足同态条件时,无更简洁的内置写法

如果G不满足上述同态性质,(F G H)&.I就和原结构不等价(因为I^:_1会作用在G的整体结果上,而非F、H各自的结果)。这种情况下:

  • 你提到的(F G&(I^:_1) H)@I确实等价,但确实不够简洁;
  • 原写法F&.I G H&.I是最直观的内置表达,没有更短的内置动词组合能替代它且仅写一次&.I。

如果需要频繁使用这类结构,可以自定义一个副词来简化:

underFork =: 4 : '(x&.y) z (w&.y)'

使用示例:F underFork G H I,即可实现(F&.I) G (H&.I)的效果。

内容的提问来源于stack exchange,提问作者Jonathan Schaber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 01:04:59