是拉特吗? Scheme 中的原始函数?

Is lat? a primitive function in Scheme?

假设l定义如下:

> (define l (list 1 2 3))

l 现在绑定到原子列表。

小Schemer介绍一个简单的函数叫lat?根据参数作为原子列表的分类,它的计算结果为#t 或#f。例如,

> (lat? l)

应该评估为#t,因为 l 是三个原子的列表。

但是,我的方案解释器 (repl.it) 在被要求调用 lat? 时抛出错误。

> (lat? l)
Error: execute: unbound symbol: "lat" []

我假设纬度是错误的吗? Scheme 是原始的吗?

另外,请原谅转载。

经纬度?在本书的早期定义。见第 19 页。

(define lat?
  (lambda (l)
    (cond
      ((null? l) #t)
      ((atom? (car l)) (lat? (cdr l)))
      (else #f))))

这本书详细说明了一个函数需要做什么以及它需要以一种可能需要习惯的对话方式生成什么输出。

原来这是一个愚蠢的问题:文本任务 reader 设计了一个定义。如果有人感兴趣,这里是答案:

(define lat?
  (lambda (l)
    (cond
      ((null? l) #t)
      ((atom? (car l)) (lat? (cdr l))
      (else #f))))