rest parameter 如何展开?

r7rs 分成了两个:r7rs-small 和 r7rs-large,前一个几年前就完成了,然后后一个也还是非常缓慢地开发中。

几个开发者好像重心已经不在 chez 上面了,但是还是有 commits,也在 merge 一些 PR。

Chez Scheme 可不是用来做胶水语言的。你说 Guile 是做胶水语言还可以,毕竟名字就是扩展语言啊。其实各家 Scheme 实现的开发目的五花八门,什么样都有。

所以 Chez 除了可以写 C binding 以外有什么用嗎(笑,同是小众的小众语言实現 PolyML 好歹有 HOL 在用,反而沒听过有什么 no trivial 的 project 是用指名用 Chez 的。

Chez 几年前才开源,之前都是商业编译器。(一些找不到来源的使用方面就先不在这提)Cisco 花钱买下来后来再开源可能是傻吧(笑

(没用过(Racket)以外的其他 Scheme,下面当作胡扯)Chez 在 Scheme 世界的优势其实是速度,直接用 nanopass 从 Scheme 写到机器码。如果要给 C 的胶水,为什么一定要用 Chez 呢?Bigloo 或者 Guile 或者 Chicken 不好吗?

所以猜猜 Cisco 买 Chez 干嘛?

当然是写 C binding 啊。

Chez 开源之前有 Petite,一样可以用 C binding。

所以你至少知道为什么不用 Racket 吧?

能用做 C binding 不意味着只能用 C binding。Chez 长年的闭源状态导致它没什么生态可言,这是确实是缺点。但也不至于说 Scheme 就是用来做 C binding 的胶水语言吧。为什么什么实现都要去做 C binding 啊。

喜欢 Racket 的,平时 Racket 用的多的为什么不会去用 Racket 做 C binding 啊?关于 Racket on CS,社区里有的讨论就是关于 C FFI 的变动。(话说你不是认为 Racket 不是 Scheme 吗)

用 Racket 的第一感受是比 ruby 还慢许多,我真的不是很相信这样的玩意能实用。

所以除了用來被研究以外,Scheme 在做 script/glue lang 以外有什么 non trivial 的实际应用啊?我真的想不出來啊⋯⋯

“Racket 不是 Scheme” 是它社区自己声称的,你不应該很熟么?我只不过复读一遍,然而还不是实現了 RnRS


这样说来的话 Scheme Scribe,Skribilo 等文本处理工具倒是不少,可是上个设计出来处理文本的语言叫 Perl 罢。

确实不能实用。实用的话谁用 Lisp?

Racket 社区里有两个用它外包写网站的,还有一个写 Pollen 勉强能算?

哦,往年的 Racket Con 里,有搞深度学习的,有数据分析的,有做图片艺术化(?)的,好像有游戏开发

Racket “is a descendant of Scheme”,不会说自己不是 Scheme,就像 Scheme 不会说自己不是LISP。Racket 改名很大原因是 r6rs。(关于改名的更多内容,在 Racket: From PLT Scheme to Racket )就像里面说的 “Racket is (kind of) a Scheme”,但是Racket 社区里不会说(其他 Schemer 可能会说)Racket 不是 Scheme,毕竟是从那过来的。

当然,如果你愿意了解一下 Racket 的话,Github repo 的 wiki 里就有一页(很勉强地)介绍了哪些再用 Racket:Organizations using Racket · racket/racket Wiki · GitHub


强行说实用,可能用(用 PLT Scheme 做的)Arc 做的 Hacker News 能算吧。

还有,Common Lisp 有什么实际应用啊?又是拿 Grammarly 举例了吗?大家都是没人用的小众语言了,何苦为难对方呢?

Common Lisp 的应用有:操作系统 Symbolics,专家系统 OPS5,服务器 CL-HTTP,图形界面 CLIM,音乐创作 Opusmodus,文稿出版 Concordia,定理证明 ACL2 全都是成功的商用/军用项目,太新的我不太好意思说。

2 个赞

上个礼拜?刚有人在这发贴 C2 上不少人说 Scheme 不是 Lisp,不止是 Schemer 还是 Lisper 都有。我觉得罢,大家可能需要统一一下口径。Peter N 说 Python 是一种 Lisp 的事还历历在目呢。

Paul G 这叛徒我都不太好意思提。

I don’t think it can be called ‘Scheme’ because it’s not backwards compatible with any Scheme standard.

这页还挺新的,我上次逛还没见过

哈哈,Scheme 还是只能做做教学语言,然后用 hygienic macro 忽悠一下新人;至于 minimalism,这也不是在弄 r7rs-large 了嘛。PLT Redex,Chez 的 nanopass,Rosette,还有 Racket 的 web server 确实也没人用。另外,因为是大忽悠弄的,Y Combinator 和 Hacker News 确实不行。

我说的是「Racket 不会说自己不是 Scheme」,其他 Scheme 社区的认为 Racket 不是 Scheme 也很正常(都说了改名和 r6rs 有关系)。至于有 schemer 说 Scheme 不是 Lisp,不知道说的是什么 Lisp,我还是先抱歉,不熟其他 Scheme 社区,可能说错了。

这是改名时的公告啊,难道你上次逛的时候还是 PLT Scheme?


P.S. 这里看,Racket 怎么也不至于说比 Ruby 慢。

P.P.S. 在这里给另外之前看过的一个帖子(那时还没注册账号)回复一下,我觉得你需要了解下 Scheme 的 numeric tower。

Lisp Language Family。

我对历史不好的人很不爽。

Benchmark games 和它声称的一样,It depends how you write it!

另外在“慢”这个概念上我是把 startup time, compile time, 乃至 cpu usage 算上的,这些放到 racket v7.2 上都做得不是得令人滿意。

numeric tower 还是 MacLisp 先搞出來的(不只在 number domain 上,有个更寬泛的概念名为 coerce,btw Scheme R0RS 是在 MacLisp 上实現的),我会不知道么?那个 single-floatdouble-float 准的贴子属于卖乖骗水的。

我上次完整地逛的時候至少 Typed Racket 都沒成型哩(17年),之后也就看看文檔参考一下。我感覺前两段都是新加的。

写程序为什么要历史好,我连 Scheme 都没学清楚哩。不过我比较笨,从那里的语境里确实看不出是什么 Lisp。

How you write Racket and Ruby?(笑)

你好像确实不知道。不然那个帖子毫无意义啊,Scheme 又不是没有精确表示。

17年 Typed Racket 好像都在做 dependent type 和 refinement type 了。不过也是,从08年开始发论文,到现在也就三五个人在做,2026年能成型就不错了。

为什麼要看历史?因为很多所谓新的玩意很早已经有人做过,连微创新都说不上。多数还做得不如原來的好。

你猜猜 MacLisp 有沒有?哦,我忘了你不懂历史。

Racket && Ruby

反正 Typed Racket 越做越慢,不但 tc 慢还比不加 type annotation 的 racket 还慢到現在看起來也沒啥可用性。

你那么熟历史,不还是不知道 Scheme 有 exact number?我没记错的话,是说 Scheme 里 (* 1.1 1.1) 是不精确的。所以我才说你不知道 numeric tower 啊。即使真的是 MacLisp 学来也没关系啊,有就行了,不至于莫名其妙被拿出来黑一下就好了。

Typed Racket 确实没啥可用性。Gradual typing 本来就要麻烦一些;纯 typed 环境下能做优化,在 untyped 环境下又是一大堆的 contract;甚至因为 polymorphic 连 map 有时都推导不出来。实际上,Racket 都没人用,Typed Racket 哪还能有可用性呢?对了,怎么确定可用性呢,我心里画一个大叉就是没有啦。

所以你不知道我的意思是現行 Scheme 标准用的是 IEEE double float,这个标准里面定义的行为 1.1 * 1.1就是”不精确的”,Common Lisp 出于历史同時有 double 和 single 但用默认用 single float,与多数语言不同反而在这个特別的例子上”更精确”。

我还知道 Scheme R3RS 可以用 #e1.1 表示 rational 11/10,会不知道 numeric tower?那才奇怪了。RnRS 加上 ISO Scheme 才多少页,老夫连 ANSI CL 一千百多页加上 CLtL2 近两千页都看完整了,会沒看全这么点?

所以我要等你們踩完坑再看看行不彳亍只。

这个发帖原因可真叫人头疼。看来我不仅历史不好,语文也不好。

所以发贴原因就是「看啊現在就 CL 还在用 single float 真稀奇」而后「论证 single float 的优越性」强行水贴


人类是不可能相互理解的。

少写程序,多看高达,多睡覺,每天做柔体操,做个猫耳上班族,就會好了,医生都说我很健康。

还是结贴吧

对了,rest arg用apply展开 :rofl: