Clojure China

05-16 LISP 微信群短暂的聊天记录

#1

chenyong 17:08 又多一个可以吵架的地方了
何幻 17:09 是不是应该拆成两个,Lisp-1群,Lisp-2群
悟空 17:10 不同的namespace
焕 17:10 因为两种lisp范式不能共存[奸笑]
荒 17:11 等吵得不可开交了, 再说吧
Liutos 17:19 羡慕会写cljs的群主(
chenyong 17:21 clojure-script.org 戳吧
λx.x 17:25 我得宣传一波racket了
何幻 17:26 来,互相伤害啊~
开源哥.lisp 17:26 Common Lisp 了解一下(
λx.x 17:26 有史以来最复杂最安全最易用但是最难学的宏系统
Liutos 17:27 Common Lisp 了解一下(
λx.x 17:28 是的
λx.x 17:28 cl的宏都没模式匹配,多不方便
何幻 17:28 要那么卫生做啥。。
λx.x 17:29 防止你出错啊
开源哥.lisp 17:29 trivia 了解一下
Liutos 17:29 先用宏写一个模式匹配的功能,这样就持平了(逃
何幻 17:30 所以你们还是争论lisp-1还是2吧,这个比较显然。。
λx.x 17:30 不是吧
Liutos 17:31 记得以前看《Lisp In Small Pieces》,作者说 CL 其实是 lisp-7 (逃
开源哥.lisp 17:31 对(
何幻 17:32 Lisp-ω吧。。 悟空 17:32 lisp-namespace Provides LISP-N — extensible namespaces in Common Lisp
何幻 17:32 CL那个Symbol系统,好烧脑,一叶一世界。。
λx.x 17:34 其实卫生宏的好处不止防止你出错
开源哥.lisp 17:34 卫生宏还是很有用的(
何幻 17:35 有很多模板系统都不卫生,看着就心烦。。 模板引入了另一个模板,结果全局污染。。
何幻 17:37 被展开的代码,居然依赖于展开处的环境,这容易写出魔法[坏笑]
Liutos 17:38 有时候有用(比如写 anaphoric macro)
λx.x 17:43 racket的宏有很多缺点,一是macro stepper其实对新手基本没什么用
λx.x 17:44 二是一旦要写非卫生宏就必须要熟悉宏的展开算法
何幻 17:49 只读过Racket Guilde 5,现在文档都看不懂说啥的了。。
λx.x 17:50 很正常,细节实在太多了
λx.x 17:50 必须要自己曾经写错过才会知道
λx.x 17:51 比如说 为什么有的时候宏可以在定义前使用,为什么有的时候不行呢
何幻 17:51 那这是不是违背了not by piling feature on top of feature的原则。。
何幻 17:52 我发现最直接的办法,就是把自己看成一个人肉宏展开器[快哭了]

#2

作为小白,任是没看懂一点。只知道好像说的是宏。。。。。