簡體   English   中英

是嗎? Scheme中的原始函數?

[英]Is lat? a primitive function in Scheme?

假設 l 定義如下:

> (define l (list 1 2 3))

l 現在綁定到一個原子列表。

Little Schemer 介紹了一個簡單的函數叫做 lat? 根據作為原子列表的參數的分類,其計算結果為 #t 或 #f。 例如,

> (lat? l)

應該計算為#t,因為 l 是三個原子的列表。

但是,當被要求調用 lat? 時,我的方案解釋器 ( repl.it ) 會拋出錯誤。

> (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))))

這本書以一種可能需要習慣的對話方式指定了一個函數需要做什么以及它需要生成什么輸出。

事實證明這是一個愚蠢的問題:文本要求讀者設計一個定義。 如果有人感興趣,這是答案:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM