相关疑难解决方法(0)

什么是Lisp/Scheme中的'(撇号)?

我在自己教学计划的第1小时1.不用说,我什么都不懂.所以我正在阅读The Little Schemer并使用这个东西:

http://sisc-scheme.org/sisc-online.php

作为翻译.

我需要使用'例如

(atom? 'turkey)
Run Code Online (Sandbox Code Playgroud)

避免"未定义的变量"错误.的',根据这本书,是Common Lisp的事情.

我有两个问题:

  1. 我上面提到的翻译是好的吗?你能推荐另一个吗?我需要一个能与The Little Schemer合作的人.

  2. 什么是'

lisp scheme the-little-schemer quote

59
推荐指数
5
解决办法
3万
查看次数

引号和列表有什么区别?

我知道你可以使用'(aka quote)创建一个列表,我一直都在使用它,如下所示:

> (car '(1 2 3))
1
Run Code Online (Sandbox Code Playgroud)

但它并不总是像我期望的那样工作.例如,我试图创建一个函数列表,像这样,但它不起作用:

> (define math-fns '(+ - * /))
> (map (lambda (fn) (fn 1)) math-fns)
application: not a procedure;
  expected a procedure that can be applied to arguments
  given: '+
Run Code Online (Sandbox Code Playgroud)

当我使用时list,它的工作原理:

> (define math-fns (list + - * /))
> (map (lambda (fn) (fn 1)) math-fns)
'(1 -1 1 1)
Run Code Online (Sandbox Code Playgroud)

为什么?我认为'这只是一个方便的速记,为什么行为不同?

evaluation scheme racket quote

33
推荐指数
2
解决办法
8009
查看次数

标签 统计

quote ×2

scheme ×2

evaluation ×1

lisp ×1

racket ×1

the-little-schemer ×1