我一直在试验SALT,但遇到了一致的Load问题,这些问题似乎只影响原始的函数训练。我希望在确保所有函数Load正确的问题上有任何建议。
为了说明,在一个清晰的工作区中,我将创建一些转换十六进制和八进制的示例函数。有些是dfns,另一些是原始列车:
FromOct←8⊥⊢
ToOct←(FromOct⍣¯1)
FromHex←{16⊥⍵}
ToHex←{((16⊥⊢)⍣¯1)⍵}
HexToOct←ToOct FromHex初始盐态:
⎕SE.SALT.List '/path/to/salt'
Type Name Versions Size Last Update
然后Snap工作区:
⎕SE.SALT.Snap '/path/to/salt -clean -loadfn'
** WARNING: ⎕LX is empty
#.FromHex #.FromOct #.HexToOct #.ToHex #.ToOct ⎕SE.SALT.List '/path/to/salt -type'
Type Name Versions Size Last Update
Fn FromHex 25 2021/05/18 17:08:32
Fn FromOct 25 2021/05/18 17:08:32
Fn HexToOct 46 2021/05/18 17:08:32
Fn ToHex 36 2021/05/18 17:08:32
Fn ToOct 31 2021/05/18 17:08:32
Fn load_ws 537 2021/05/18 17:08:32 并检查load_ws函数导入的内容:
⎕CMD 'cat /path/to/salt/load_ws.dyalog | grep "^ Load''"'
Load'"/path/to/salt/FromHex" -target=#' â #.FromHex
Load'"/path/to/salt/FromOct" -target=#' â #.FromOct
Load'"/path/to/salt/HexToOct" -target=#' â #.HexToOct
Load'"/path/to/salt/ToHex" -target=#' â #.ToHex
Load'"/path/to/salt/ToOct" -target=#' â #.ToOct在一个清晰的工作区中,运行load_ws
⎕SE.SALT.Load '/path/to/salt/load_ws'
load_ws
*** could not fix "/path/to/salt/FromOct.dyalog"
*** could not fix "/path/to/salt/HexToOct.dyalog"
*** could not fix "/path/to/salt/ToOct.dyalog"dfns装载得很好,火车坏了。
一个现成的解决方法是用tradfns或dfns包装,但这是非常不可取的。
有没有想过用盐来正确地装载这类功能?
谢谢
发布于 2021-05-18 21:53:54
Nameclasses 3.3 (原语或派生函数)和4.3 (基元或派生运算符)不能使用盐类操作--尝试这样做会导致数据丢失。
正如保罗·曼苏尔的评论中提到的,Dyalog .建议从SALT过渡到Link,特别是在使用Dyalog版本18.1时,该版本将在未来几个月发布。但是,请注意,即使是链接目前不处理默认功能。
不支持没有文本源的函数、运算符和命名空间(
⎕NC为3.3或4.3,即派生函数/运算符、trains和命名原语)。
与盐类不同的是,在不久的将来,这种情况可能会发生变化,因为盐并没有计划接受任何主要功能的添加。
虽然用手工将默认函数包装在tradfns中是很尴尬的,但是“懒散”图书馆使这件事变得轻而易举。
https://stackoverflow.com/questions/67591221
复制相似问题