8 Matching Annotations
- Dec 2022
-
www.zhihu.com www.zhihu.com
-
在计算机科学中,整体来说,PL 更接近 Theory 还是 System?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
如何评价PLT Redex?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
想看懂编程语言理论书籍需要什么前置的知识?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
系统地学习PLT需要读哪些经典书籍?
-
-
www.zhihu.com www.zhihu.com
-
怎么评价这份PLT Learning By Doing Guide 攻略?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
程序设计语言理论(PLT)领域里有哪些经典的教材?
-
- Nov 2019
-
stuartsierra.com stuartsierra.com
-
They answer the two chief complaints about Lisp syntax: too many parentheses and “unnatural” ordering
they do that, but I don't think that's their primary rationale and a deeper win more important they neatly express certain structure / shape of computation
Tags
Annotators
URL
-
- Oct 2019
-
github.com github.com
-
For example the following pattern: (let [x true y true z true] (match [x y z] [_ false true] 1 [false true _ ] 2 [_ _ false] 3 [_ _ true] 4)) ;=> 4 expands into something similar to the following: (cond (= y false) (cond (= z false) (let [] 3) (= z true) (let [] 1) :else (throw (java.lang.Exception. "No match found."))) (= y true) (cond (= x false) (let [] 2) :else (cond (= z false) 3 (= z true) 4 :else (throw (java.lang.Exception. "No match found.")))) :else (cond (= z false) (let [] 3) (= z true) (let [] 4) :else (throw (java.lang.Exception. "No match found.")))) Note that y gets tested first. Lazy pattern matching consistently gives compact decision trees. This means faster pattern matching. You can find out more in the top paper cited below.
Tags
Annotators
URL
-