Pharo Finder中的“按示例查找”是如何工作的?

15

在我深入研究Pharo时,最让我印象深刻的一点是Finder可以进行按示例查找。之前,我只在像Haskell这样的语言中看到过这种功能,因为在这些语言中,能够确定函数没有副作用。Pharo是如何实现这种安全、高效和无副作用的功能的呢?

1个回答

17

神奇 :)

实际上...虽然我一直在梦想着自动从测试中创建出列表,但现实是我们手动维护一个安全消息的列表(显然容易出错;我严重怀疑它不会100%准确)。请参见MethodFinder>>#initialize

所以这只是一个技巧,而不是真正的魔法 ;)


6
谢谢!顺便说一下,我正在利用这个功能在这里把人的脸都熔化了:http://devblog.avdi.org/2015/05/11/in-which-i-make-you-hate-ruby-in-7-minutes/ - Avdi
10
值得注意的是,Pharo Smalltalk 继承了这项能力,而这项能力源自于 Squeak Smalltalk。方法查找器(由 Ted Kaehler 开发)现在已经超过15年了。 - codefrau
4
Squeak一直都很棒,Pharo是基于它的,并且归功于那些使Squeak成为可能的人们。感谢大家。 - Kilon
5
@BertFreudenberg,让我们补充一下,Kaehler的目标是提供“按示例编程”的功能。Finder在这个方向上是一个非常好的步骤。Finder也可以与实现事务(如GemStone)或更为雄心勃勃的撤销相关联。 - Leandro Caniglia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接