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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from 神奇的笔记 (神楽坂 立音)
openSUSE Tumbleweed 最近一次的 firewalld 更新破坏了 firewall-config 管理界面,错误的阻挡了 KVM 和 Docker 的外联请求
#java #backend
https://github.com/SpinalHDL/VexRiscv
貌似是一个 Scala 的 RISC 虚拟机呢
GitHub 扫描出来是 Assembly 项目的结果其实是因为它的测试都是汇编写的,目标是测试虚拟机正常工作而已
其实本体基本是 Scala 所写
Forwarded from 神奇的笔记 (神楽坂 立音)
#Blender学习 合成器/SunBeam/合成节点
2000fo 纪念! w
谢谢大家!
#INFO @YuutaW 把自己的个人频道转型为了一个新科技资讯频道
Forwarded from 永久封存 | Yuuta 台 | 😷 #Pray4Wuhan (Yuuta)
从现在开始,本频道不会再发布任何负面内容,本频道尽量不向读者传播负能量。
如果您认为本频道发布的消息违反了此项规定,请立即私信频道主 @YuutaW ,我会考虑处理。
也请频道授权的发布者遵守这一规定。
#频道
This media is not supported in your browser
VIEW IN TELEGRAM
#PL #project 最近 Lime 程式设计语言的 Java 解释器暂时不能开发,因为 Gekyll 拖了太久了而且马上开学了

Kotlin 版本解释器和未完成的 Java 版本在此,如果需要欢迎取用
简单的介绍一下 Lime 的工作原理

Lime 是一种简单的,基于 S-表达式的程序设计语言

Lime 拥有这几种原生类型

布尔:true false
对象:Java 对象、空指针
数字:默认 Double,支持 BigInteger 或 BigDecimal、Float、Long、Byte、Integer、Short 手动解析时根据词条类型转换
字符串:Java 的 String 对象
标识符(符号):Symbol 对象
S 表达式:SexpList 对象
宏:Macro 对象

详细信息可以看 KtLime 取用

Lime 是一门基于宏的语言,所有「函数调用」最终会被展开为「内部展开器」调用

宏可以被「apply」,apply(施用)的结果「application」可能是这样的:
最终所有宏都会被递归展开为 「内部展开器调用」形式

(# each (object procedure) . each object procedure)

~ (each list (do (i) puts i)) ; expanded as handler dispatch ". each list (# (i) puts i)"

Lime 为了支持一些元编程的宏,提供了「宏前置」功能,让宏可以直接接受到没有展开过的结果

(^# (vararg) . show-code vararg)

这样对某些参数来 apply 此宏时,不会预先进行 S 表达式展开 (print (+ 1 1)) 和符号解析 (print a) 了,直接给出没有展开的对象列表

这就是 Lime 的工作原理

(-> puts (# (object) . print-line object)))
(-> let (^# (vararg) . let-syntax vararg))
(let (hello = 'Hello, world!') in
(puts hello))