临时可变辅助(计划)

时间:2014-11-07 17:27:07

标签: scheme

我使用Scheme(Pretty Big)制作一个随机句子生成器,并且我在定义临时变量时遇到了麻烦。我想做这样的事情:

<NOUN1> <VERB1> <NOUN2> <but> <NOUN2> <VERB1> <NOUN2> <also>

示例:鲨鱼吃鱼,但鱼也吃鱼。 我有单词列表,以及从所述列表中选择单词的功能。然后,我使用append来创建一个函数。我能做到:

(define (sentence) 
  (append (getNoun) '(and) (getNoun) (getVerb))) 

但是,我无法找到临时定义变量的方法。 到目前为止我有这个:

(define (sentence1) 
  (append (getNoun)
          (lambda (verb getVerb)
            (noun getNoun))
          (verb) (noun) '(but) (noun) (verb) (noun)))

提示/帮助吗?

1 个答案:

答案 0 :(得分:1)

您正在寻找let

http://docs.racket-lang.org/reference/let.html

以下是一个示例用法:

(define (my-proc age)
  (let ([age-plus-10 (+ age 10)])
    (printf "age is ~a" age)
    (printf "age-plus-10 is ~a" age-plus-10)))

请注意我们如何临时定义age-plus-10,然后再使用它。