j - 用于名词初始化的句子的原子表示
问题描述
在数据结构中,例如
我希望能够使用“。(do)来初始化左侧可能是一长串名词名称,右侧是嵌套数组中的值。值可以是嵌套数组。5!:5需要获取原子表示的名词名称。获取数据的 AR 的方法是什么,例如嵌套数组,例如 <'data';'data';100?
解决方案
如果你想要一个名词的 AR,我用这个:
5!:1 <'t' [ t=. <'data';'data';100
┌─────────────────────┐
│┌─┬─────────────────┐│
││0│┌───────────────┐││
││ ││┌────┬────┬───┐│││
││ │││data│data│100││││
││ ││└────┴────┴───┘│││
││ │└───────────────┘││
│└─┴─────────────────┘│
└─────────────────────┘
如果您想将它扩展到您存储为线性文本表达式的其他词性,您可以这样做:
5!:1 <'t' [ ". 't=.', '<''data'';''data'';100'
┌─────────────────────┐
│┌─┬─────────────────┐│
││0│┌───────────────┐││
││ ││┌────┬────┬───┐│││
││ │││data│data│100││││
││ ││└────┴────┴───┘│││
││ │└───────────────┘││
│└─┴─────────────────┘│
└─────────────────────┘
这需要引号中的额外 qoutes,但如果它们是文本格式,则允许所有词性:
5!:1 <'t' [ ". 't=.', '+'
┌─┐
│+│
└─┘
但是如果你有你所指出的结构,为什么不做这样的事情:
[ s=:4 3 $ 'one';'=:';1;'two';'=:';2;'three';'=:';3;'four';'=:';4
┌─────┬──┬─┐
│one │=:│1│
├─────┼──┼─┤
│two │=:│2│
├─────┼──┼─┤
│three│=:│3│
├─────┼──┼─┤
│four │=:│4│
└─────┴──┴─┘
{:"1 s
┌─┬─┬─┬─┐
│1│2│3│4│
└─┴─┴─┴─┘
(;:^:_1 {."1 s)
one two three four
(;:^:_1 {."1 s)=.{:"1 s
one
1
two
2
three
3
four
4
添加的解决方案
由于您只想将名词表示为 AR,因此您始终可以根据 AR 的规则构造它们。将名词框起来,附加列表“0”,然后将结果框起来。
arc =: 3 : '5!:1 < ''y''' NB. explict verb to create AR using intermediate name
ar=. < @:((<, '0'),<) NB. tacit verb to construct AR for nouns with no intermediate name
(arc -: ar) 5
1
(arc -: ar) <'data';'data';100
1
(arc -: ar) 5;<'data';3j2
1
推荐阅读
- css - 当我通过过渡/动画增加尺寸时,元素子“颤抖”
- go - 更改结构内部结构的引用
- cookies - 在 cookie 中存储 Bearer 令牌的安全性
- java - 为什么 TreeBin 在 ConcurrentHashMap 中维护一个读写锁?
- vba - texbox 计算不正确
- php - Laravel 的 `$request->ip()` 不返回 IP 地址的最后一位
- ios - iOS:使用 MapBox 为从用户输入中出现的注释创建动态语音气球
- python - 索引错误异常
- php - 如何在 PHP5 中上传文件并将文件名保存在数据库(MySQL)中
- ios - CAShapeLayer 蒙版不显示