帮助我回答Simply Scheme
中出现的以下问题6.7编写一个过程类型 - 以任何形式作为参数,并返回单词word,sentence,number或boolean中的一个:
> (type-of '(getting better))
SENTENCE
> (type-of 'revolution)
WORD
> (type-of (= 3 3))
BOOLEAN
(即使数字是单词,如果参数是数字,你的程序应返回数字。)
答案 0 :(得分:2)
您可以使用cond
形式检查多个条件并相应地执行操作。您可以使用谓词boolean?
,number?
,word?
和sentence?
¹来分别找出值是布尔值,数字,单词还是句子。这基本上就是它的全部内容。
您唯一需要考虑的是number?
的情况必须在word?
的案例之前(因为word?
也会为数字返回true,因为练习有助于指出)。
¹前两个是标准方案,后两个是在简单的.scm中定义的,随书一起提供。