我刚刚发现球拍前几天,我试图通过编写生成图像使用来表示源代码的小脚本,以获得更多的舒服#lang slideshow
。
我知道,在功能范式编程时,它是很好的做法,以创建几乎所有与变量let
,但我发现它引入了嵌套和球拍的让有需要多余的括号内过于复杂的API层次太多。 我敢肯定,这是使用时取出歧义let
更有力的方式,但对于我而言,它只是一个烦恼。 因此,我创建我的所有变量define
,并用写块begin
,如果我需要(如在体内if
语句)。
问题是,我已经多次被得到什么似乎是很奇怪的错误。 我敢肯定,我只是做了一些愚蠢的初学者的错误,是新来的语言,但我真的似乎无法找到投诉的来源。
这里是有问题的代码:
(define sub-code (foldr ht-append (rectangle 0 0) (map internal-style (rest code))))
虽然我们正在定义sub-code
来似乎相当无关。 如果我将其替换为
(define sub-code '())
我收到了同样的错误。 DrRacket是说, define
在表达式上下文中被使用。 我明白这是什么错误通常意味着- IE浏览器,当你写这样的代码,将提高(print (define x 10))
但我看不出有什么会在这里引发的。
如果有帮助,这个define
是在年初begin
块,内部if
语句
(if (list? code)
(begin
(define sub-code '())
; a few more define statements and finally an expression ))
特定错误消息DrRacket正在打印是
define: not allowed in an expression context in: (define sub-code (quote ()))
我想,也许define
不允许在begin
块,但我查了文档和例子一begin
是
(begin
(define x 10)
x)
所以,我真的不知道该怎么办。 提前致谢!