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

如何将APL表达式{(+/3<?⍵⍴6)×100÷⍵}1000改写为tacit无点风格

APL无点风格转换方案

原函数功能为输入骰子投掷次数n,返回投掷结果中4/5/6占比的百分比,原实现代码:
{(+/3<?⍵⍴6)×100÷⍵}

转换步骤

我们可以通过APL的函数组合特性逐步消去参数⍵:

  • 原代码中⍵⍴6的作用是生成形状为n、填充值为6的数组,可改写为无点形式⊢⍴6(⊢为恒等函数,直接取输入参数作为⍴的左操作数)
  • 随机骰子结果逻辑可以进一步简化:?⍵⍴6等价于二目随机函数写法⍵?6,可直接简化为⊢?6
  • 统计符合要求的次数逻辑+/3<X可以改写为组合函数+/∘(3∘<)
  • 百分比换算逻辑100÷⍵改写为无点形式100÷⊢
  • 最后通过APL的叉组合子(f g h)(语义为输入参数x时返回(f x) g (h x)),将次数统计和百分比计算两部分用乘法拼接即可

最终无点实现代码

(+/∘(3∘<)∘(⊢?6) × 100÷⊢)

直接传入参数即可调用,例如(+/∘(3∘<)∘(⊢?6) × 100÷⊢) 1000,运行结果和原函数完全一致。

内容的提问来源于stack exchange,提问作者Felix Dombek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:15:11