Я реализую фьючерсы в Pharo. Я наткнулся на этот сайт http://onsmalltalk.com/smalltalk-concurrency-playing-with-futures. Я следую этому примеру и пытаюсь воспроизвести его на Pharo. Однако я дошел до этого последнего шага и понятия не имею, что означает «>>»: этот символ также не включен как часть синтаксиса Smalltalk в http://rigaux.org/language-study./syntax-across-languages-per-language/Smalltalk.html.
BlockClosure>>future
^ SFuture new value: self fixTemps
Я вижу, что будущее не является переменной или методом, реализованным BlockClosure. Что мне делать с этой частью кода, чтобы промисы/фьючерсы работали, как указано в http://onsmalltalk.com/smalltalk-concurrency-playing-with-futures? Я не могу добавить его на Playground или в качестве метода в свой класс Promise, или я что-то упустил?
После добавления будущего метода в BlockClosure я пробую этот код на PlayGround.
value1 := [200 timesRepeat:[Transcript show: '.']. 6] future.
value2 := [200 timesRepeat:[Transcript show: '+']. 6] future.
Transcript show: 'other work'.
Transcript show: (value1 + value2).
Date today
Стенограмма отображает приведенную ниже ошибку вместо ожидаемого значения 12.
UndefinedObject>>DoIt (value1 is Undeclared)
UndefinedObject>>DoIt (value2 is Undeclared)