我对Gambit Scheme非常感兴趣,特别是它广泛支持的平台,以及在需要时将C代码放在Scheme源代码中的能力.也就是说,它是一个Scheme,与Common Lisp相比,它包含更少的"电池".有些人喜欢从头开始编写很多东西(又名顽皮的牦牛皮),但不是我!
这让我想到了两个问题,面向那些既使用了Gambit又使用了一些Common Lisp的人:
1)哪些有效地更好地访问图书馆?Scheme比Common Lisp拥有更少的库.但是,Gambit Scheme可以更顺畅地访问C/C++代码和库,远远超过Common Lisp的库.在您看来,Gambit FFI的平稳性是否超过其本土图书馆的缺乏?
2)Scheme的对象系统(例如TinyCLOS,Meroon)与Common Lisp的CLOS相比如何?如果你发现它们缺乏,你最想念的是什么功能?最后,Lisp/Scheme中的对象系统首先有多重要?我听说过整个基于lisp的公司(例如ITA软件公司)完全放弃了CLOS.对象在Lisp/Scheme中是否真的可选?我担心如果Gambit没有好的对象系统,我可能会想念它们(我的编程背景纯粹是面向对象的).
感谢您帮助C++/Python进行有抱负的转换,
- 马特
PS:有超过1500名代表的人,请你创建一个"开局"标签?:) 谢谢乔纳斯!
Gambit-C 的 GC 机制是什么?我很好奇这个用于制作交互式应用程序。我想知道它是否可以避免突发GC操作。
我尝试运行一个之前用 guile 运行的策略方案脚本。我注意到策略失败了,因为它缺少“格式”功能。
格式不是方案的一部分吗?
(format #t "example(~a)=<~a>\n" i (example i))
Run Code Online (Sandbox Code Playgroud)
相反,我将我的策略脚本修改为以下内容。
(display (string-append "example(" (number->string i) ")=<" (number->string (example i)) ">\n"))
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么?谢谢。
我想在 Scheme (Gambit) 中实现 Heap 的算法。
我阅读了他的论文并查阅了大量资源,但我还没有找到很多函数式语言实现。
我想至少获得可能的排列数量。
下一步是实际打印出所有可能的排列。
这是我到目前为止所拥有的:
3 (define (heap lst n)
4 (if (= n 1)
5 0
6 (let ((i 1) (temp 0))
7 (if (< i n)
8 (begin
9 (heap lst (- n 1))
10 (cond
11 ; if even: 1 to n -1 consecutively cell selected
12 ((= 0 (modulo n 2))
13 ;(cons (car lst) (heap (cdr lst) (length (cdr lst)))))
14 (+ 1 (heap (cdr lst) (length (cdr lst)))))
15 …Run Code Online (Sandbox Code Playgroud) gambit ×5
scheme ×5
lisp ×2
clos ×1
common-lisp ×1
guile ×1
haskell ×1
iphone ×1
permutation ×1
sml ×1