gpt4 book ai didi

scripting - 在 APL 中声明多行函数的问题

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

#!/usr/bin/dyalog -script
⍝ /usr/bin/dyalog is a symlink to /opt/mdyalog/18.0/64/unicode/mapl

factors←{⎕ML ⎕IO←1 ⋄ ⍵{ ⍵,(⍺÷×/⍵)~1}∊⍵{(0=(⍵*⍳⌊⍵⍟⍺)|⍺)/⍵}¨⍬{nxt←⊃⍵ ⋄ msk←0≠nxt|⍵ ⋄ ∧/1↓msk:⍺,⍵ ⋄ (⍺,nxt)∇ msk/⍵}⍵{ (0=⍵|⍺)/⍵}2,(1+2×⍳⌊0.5×⍵*÷2),⍵}
factors 20

复制自https://dfns.dyalog.com/c_factors.htm它的工作原理与示例完全一样,除了我无法将其作为单独的行键入并且必须求助于

使用示例它会导致

./.local/src/sandbox/apl/Main.apl                                                                                                                                                                                                     
SYNTAX ERROR
factors←{⎕ML ⎕IO←1 ⍝ Prime factors of ⍵.

另一个问题是使用 ] 命令,例如 ]display]box on使用它们总是会导致

./.local/src/sandbox/apl/Main.apl                                                                                                                                                                                                     

VALUE ERROR: Undefined name: ⎕SE.UCMD

最佳答案

尝试* 添加设置 DYALOG_LINEEDITOR_MODE到 1:

#!/usr/bin/dyalog -script DYALOG_LINEEDITOR_MODE=1

在脚本模式下运行时,SALT 和用户命令不会自动初始化。作为per APLcart ,您可以通过以下方式启用两者:

(⎕NS⍬).(_←enableSALT⊣⎕CY'salt')

但是,在程序控制下,您通常最好使用适当的函数而不是用户命令。您可以复制 displaydisp 函数(它接受一个数组并生成与您从 ]display]box on) 有:

'display' 'disp'⎕CY'dfns'

* -scriptDYALOG_LINEEDITOR_MODE 在 18.0 版中都是实验性的,而 18.2(计划于 2022 年 3 月发布)有专门的 #!脚本支持。

关于scripting - 在 APL 中声明多行函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71159342/

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