在Ruby中,你可以像这样创建一个简单的切换功能:是否可以在方案中制作切换功能?
@switch = false
def toggle
@switch = [email protected]
end
toggle # => true
toggle # => false
toggle # => true
我想知道是否有可能做到这一点的方案。我能得到的最接近的是:
(define a #f)
(define (toggle a)
(cond ((eq? a #t) #f)
(else #t)))
(define a (toggle a))
a # => #t
(define a (toggle a))
a # => #f
(define a (toggle a))
a # => #t
谢谢。
(define switch #f)
(define (toggle)
(set! switch (not switch))
switch)
这是功课:
“无突变”的概念是功能不应该修改自身以外的某些东西。这样,您就可以运行函数而不用担心它们是否会对程序的其余部分产生奇怪的影响。 – erjiang 2010-11-11 16:01:32
我了解功能范式(尽管我不确定我是否愿意订阅它)。“从不”非常严格。有时候,你不要暗暗的想,“哦,记住事件的发生会非常好。”任何交互式软件都必须跟踪交互 - 必须记住一些事件/设置。 – Tim 2010-11-12 00:06:56