在Scheme中编写一种过程

时间:2011-01-11 14:36:58

标签: scheme typeof

帮助我回答Simply Scheme

中出现的以下问题

6.7编写一个过程类型 - 以任何形式作为参数,并返回单词word,sentence,number或boolean中的一个:

> (type-of '(getting better))
  SENTENCE

> (type-of 'revolution)
  WORD

> (type-of (= 3 3))
  BOOLEAN

(即使数字是单词,如果参数是数字,你的程序应返回数字。)

1 个答案:

答案 0 :(得分:2)

您可以使用cond形式检查多个条件并相应地执行操作。您可以使用谓词boolean?number?word?sentence?¹来分别找出值是布尔值,数字,单词还是句子。这基本上就是它的全部内容。

您唯一需要考虑的是number?的情况必须在word?的案例之前(因为word?也会为数字返回true,因为练习有助于指出)。


¹前两个是标准方案,后两个是在简单的.scm中定义的,随书一起提供。