Scheme 如何返回表单符号&x2B*

Scheme 如何返回表单符号&x2B*,scheme,racket,racket-student-languages,Scheme,Racket,Racket Student Languages,如果x>0+else* 比如: 我试过这个,但对球拍不起作用: (define (plus_or_multi x) (if (>= x 0) + *)) 我犯了这个错误 +: expected a function call, but there is no open parenthesis before this function 你的代码很好 $ chibi-scheme > (define (plus_or_multi x) (if (>= x 0) + *))

如果x>0+else* 比如:

我试过这个,但对球拍不起作用:

(define (plus_or_multi x)
  (if (>= x 0) + *))
我犯了这个错误

+: expected a function call, but there is no open parenthesis before this function
你的代码很好

$ chibi-scheme
> (define (plus_or_multi x)
(if (>= x 0) + *))
> (plus_or_multi 5)
#<opcode "+">
> (plus_or_multi -2)
#<opcode "*">
$chibi方案
>(定义(加上或多x)
(如果(>=x0)+*))
>(加上_或_多5)
#
>(加上_或_多-2)
#

您使用的不是Scheme解释器。

该代码在完整Scheme(在本例中为Racket)实现中完全有效,但根据您遇到的错误,看起来您使用的是初学者语言,Racket系统附带的几种语言之一。BSL旨在帮助初学者避免在使用基于Scheme的语言时犯一些常见的错误,并且所有的教学语言都设计为与本书配合使用。事实上,Racket附带的一些库位于
htdp
htdp2
模块中,它们源自该书,即使它们可以用于通用应用程序。在DrRacket Language->Choose Language菜单中,您可以选择语言的完整版本,这将允许您使用。。。完整语言。

由于您使用的语言不同,请切换到选项中更高级的语言,或者最好使用
#lang racket
如果您应该使用教学语言,请不要使用
#lang racket
,使用中级学生语言加lambda。你在“代码> PulsOrthRuleMuliTi/代码>上有一个打字。在中间有一个额外的<代码> i <代码>,而你称之为“代码> PulsSurrOx多<代码>。在<代码>赤壁方案中很好。Yaniv Valotker正在使用开始学生语言,一种方案/拍子的变体,它受到限制,可以帮助初学者避免更多的错误。它没有帮助初学者,反而使初学者感到困惑,因为它打破了方案的简单性。原则是该计划最大的优点。而Racket在这里所做的一切都会适得其反。
$ chibi-scheme
> (define (plus_or_multi x)
(if (>= x 0) + *))
> (plus_or_multi 5)
#<opcode "+">
> (plus_or_multi -2)
#<opcode "*">