duangsuse::Echo
721 subscribers
4.29K photos
130 videos
583 files
6.52K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
不过由于 __stack API 的计划 lazyinit 可能比较麻烦所以就没做,而是使用这种比较慢的方式,但注意其实性能完全够日常使用了
每个非 . 宏展开时都要分配初始化新的 HashMap 对象,,,,
听起来吓人,实际上在 Lime 上没有性能问题 — 这在乎啥性能呢
Jar.jar
28.6 KB
给可能使用到的项目的 Jar 包 #java #PL #project ,其中包含 Lime Lexer、Lime Parser、Lime Expander
This media is not supported in your browser
VIEW IN TELEGRAM
现在的 API 要访问 lime expander context 可能比较麻烦,是我写漏了....
我觉得大概有插件 + static field 或 __lime 两种方法吧,不过后者需要 initMetaProgrammingGlobals() 才能使用
写完是直接上天了都,我也想(删除
Lime 有哪些特色

轻量级熟悉语法只需要五分钟没有运行时,标准库可定制解释器是纯 Kotlin 实现,跨到所有 JVM 存在的平台和 JVM 语言有良好的互操作性支持动态元编程,比如 undef 动态解释性语言不需要编译,可以代替一些频繁改动的逻辑不支持全角括号,全角分号,全角引号,全角逗号等初学者易混淆的东西的解析做 DSL 挺好的没有保留字, if while 都是函数支持函数式编程(通过 defexpr )
Lime 是解耦了
吹牛:
Lime 元编程即使是现在半没有的情况也比 Lice 强
之前 Lime OO 设计的时候更强,你还能这么写 (1 2 3 4) 而 1 会被自动查找 BigInteger::-># (或更大的, Object::-># )转换成 Macro,所以你又创建了一个新的数组语法
之前说没有实际上实现的 ^ macro 设计实际上导致你不能这么写...
(while (> 10 (<-> i 0))
(|> (print i)
(type i)
(-> i (+ 1 i))))

而非要在 while 前面加 ^ ... 但是我懒
Forwarded from iVanilla 自然科学 & 神秘学实验研究部 (iVanilla)
今天果然是个不同寻常的日子
dse@susepc:~/AndroidStudioProjects/Lime/out/artifacts/Lime_jar$ java -jar Lime.jar 
100 0xFF 0b1010 011 true false null () 233N "字符串"
Lexing...
1:3 = 100
1:8 = 0xFF
1:15 = 0b1010
1:19 = 011
1:24 = true
1:30 = false
1:35 = null
1:37 = ()
1:40 = 2
1:45 = "字符串"
Parsing...

🌚 我真没抄 Lice 的词法... 不过区别也简直差不多只有 Lime 词法更严格(Number 必须以 delimiter 结尾)和不支持全角标点了
把全角和 latin 字符混在一起是很智障的做法....
字符串不支持逃逸字符,但是支持在源码中写成跨多行的形式。
是转义字符....
|> 我现在才发现比较类似啊... 我真的之前都不知道 Lice 里这是 run 的意思,可其实我打算定义一个意义完全一样的宏,叫 ~ sequence