我有一堆"传统"Guile Scheme代码,我想在Racket Scheme IDE中运行.似乎有足够的差异使这成为一项非平凡的工作.(我的计划知识水平是完成The Little Schemer的水平).
我的问题是:
附加:(对Racket Scheme和R5RS/R6RS之间的分歧感到满意) - 我想要的是在Racket IDE中运行'某些东西 - 而不是Racket语言.
当我在SICP中遇到以下'替代'定义的缺点和汽车时,我才开始觉得我对球拍和方案中lambda的使用有一个模糊的理解
(define (cons x y)
(lambda (m) (m x y)))
(define (car z)
(z (lambda (p q) p)))
(define (cdr z)
(z (lambda (p q) q)))
Run Code Online (Sandbox Code Playgroud)
对于我的生活,我无法解析它们.
任何人都能解释如何以对全新手有意义的方式解析或扩展这些吗?
我非常喜欢函数式编程,特别是Scheme,以及理想的PLT-Racket.我想知道哪些具体步骤可能让我进入编码方案(或某些功能语言)是大部分工作的位置.
我实际上对学术界很感兴趣,但另一方面,我不觉得我必须拥有在CS中获得顶级博士学位所需要的东西(至少目前不是这样).我绝对希望有一些真实的经验将复杂的系统放在Scheme中.有没有人对有抱负的Schemer有任何建议?
我有这样的声明:
((lambda (a b c) (+ a b c)) 1 2 3) ; Gives 6
Run Code Online (Sandbox Code Playgroud)
我希望能够将列表传递给它:
((lambda (a b c) (+ a b c)) (list 1 2 3))
Run Code Online (Sandbox Code Playgroud)
...除了这不起作用,因为整个列表作为'a'传递.有没有办法将列表分解为参数?
我正在寻找的东西类似于Python中的*字符.对于那些不熟悉语法的人:
def sumthree(a, b, c):
print a + b + c
sumthree(1, 2, 3) # Prints 6
sumthree(*(1, 2, 3)) # Also prints 6
Run Code Online (Sandbox Code Playgroud) 为了解释,我有OSX,我想安装PLT球拍.我不知道如何使用raco命令在终端中运行.rkt文件,而不是使用Dr. Racket解释器.我真的不喜欢DrRacket文本编辑器.
我在哪里放bin,lib和其他文件夹?我似乎无法在Racket bin中的所有或任何其他命令上访问raco命令.
Christian Queinnec写了一篇名为LISP In Small Pieces的杰作,其中包括11个Lisp Interpreters和两个Lisp编译器.
当你去从网站下载的代码在这里 -它的评论:
The programs of this book are available on the net.
These programs used to run with some Scheme systems around 1994.
Run Code Online (Sandbox Code Playgroud)
任何的想法:
(a)当时运行的计划系统是什么,更重要的是;
(b)今天会运行哪些计划系统?
虽然Racket允许一个人创建GUI应用程序(甚至是游戏),但我想知道它是否适合在视觉上发布与Things或OmniOutliner相同的商业应用程序.这样的应用程序是原生的还是看起来像一个不属于平台的尴尬的继子?例如,Ubuntu上的Gnome应用程序无缝融入平台,即使有些是用Ruby或Python编写的.
Racket可以将其关闭,如果是这样,有人能指出我的例子吗?我正在尝试确定Racket的创建方式 - 从视觉角度来看 - 商业品质的应用程序.如果没有这个,就不能轻易用它来制作销售应用程序,这似乎会减少后端语言和学术用途.
我觉得我错过了一些东西,但是在仔细阅读了net/url的文档并且一般地进行了探讨后,我无法找到从交互式提示中发出GET请求的方法.基本上,我想模仿我的python工作流来寻找一个网站:
response = urlopen("http://www.someurl.com")
Run Code Online (Sandbox Code Playgroud)
在Racket中这是可行的吗?
我通常使用Sublime文本编辑器和gnome终端来编辑和运行我的程序.出于教育目的,我正在使用IDE Dr. Racket.
我无法在键入时找到自动完成功能.我在谷歌和Dr. Racket的菜单上查看了这个.
例如,如果我调用已定义的函数,我想加快键入函数名称的过程.我尝试过使用control+ /,但它不能用作已经定义的变量和过程的自动完成功能.
编辑
racket ×10
scheme ×7
sicp ×2
autocomplete ×1
common-lisp ×1
dr.racket ×1
guile ×1
http ×1
ide ×1
lambda ×1
lisp ×1
list ×1
parameters ×1
r5rs ×1
r6rs ×1