2015-05-11 17 views
13

Una delle cose che mi ha colpito di più quando ho iniziato a scavare in Pharo era che il Finder poteva trovare l'esempio. In precedenza l'avevo visto solo in lingue come Haskell, dove è possibile sapere con certezza che una funzione non ha effetti collaterali. In che modo Pharo riesce a implementarlo in modo sicuro, performante e privo di effetti collaterali?Come funziona find-by-example nel Pharo Finder?

risposta

12

magia :)

A dire il vero ... anche se ho sognato di creare la lista dai test automaticamente, la realtà è che noi manteniamo manualmente un elenco di messaggi di sicurezza (ovviamente soggetto a errori; ho seriamente dubbio è accurato al 100%). Vedi MethodFinder>>#initialize.

Quindi un trucco, ma non esattamente magico;)

+5

Grazie! A proposito, sto usando questa capacità per fondere i volti qui: http: //devblog.avdi.org/2015/05/11/in-which-i-make-you-hate-ruby-in-7-minutes/ – Avdi

+7

Vale la pena notare che Pharo ha ereditato questa capacità da Squeak Smalltalk. Il Method Finder (di Ted Kaehler) ha più di 15 anni ora). –

+3

Squeak era e sarà fantastico, Pharo è basato su di esso e deve molto al duro lavoro delle persone che hanno reso possibile Squeak. Grazie ragazzi. – Kilon