是否可以将块语句作为给定深度 k 的块参数传递?例如,如果 k = 1,我将 f(x) 定义为[x + 3]
,但如果 k=2,我想要 f(f(x)),即[[x + 3] + 3]
。这是一个分配,所以我需要使用块语句。#value:
似乎只取整数,是否有更通用的版本#value:
?
编辑:让我更清楚一点。我的函数采用从 a 到 b 的范围和深度 k。该函数将对块语句进行评估。因此,for将从 1[x + 3] method: 1 to: 3 for: 2
评估[[x+3] + 3]
到 3。只要 k = 1,我就可以从 1 评估到 3。我正在尝试将块语句修改[x+3]
为[[x+3]+3]
,这就是我遇到麻烦的地方。我试过了
tempvariable := self "where self is the block statement [x+3]"
tempvariable := tempvariable value: self
但我得到一个
BlockClosure(Object)>>doesNotUnderstand: #adaptToNumber:andSend:
错误(这就是为什么我认为它只是整数)