On 28 February 2012 18:40, Frank Shearar <frank.shea...@gmail.com> wrote: > On 28 February 2012 16:50, Fabrizio Perin <fabrizio.pe...@gmail.com> wrote: >> Hi, >> I think the reason is for consistency. >> If fact I like as it is now for that reason. >> >> $a asParser / $b asParser / #foo asParser "It looks clear to me and is >> consistent." >> >> a asParser / $b / #foo "it looks odd because it is inconsistent." >> >> Anyway, for such simple parsers you loose consistency and you don't gain >> much. If you have to deal with longer statements, if you have to make your >> parsers reusable or simply to make your simple example cleaner for real, you >> should have separate methods: >> a >> ^$a asParser >> >> b >> ^$b asParser >> >> foo >> ^#foo asParser >> >> a / b / foo " this is cleaner and consistent" >> >> I hope I made my point. >> >> Cheers, >> Fabrizio >> >> "Consistency, Consistency, Consistency" > > I've often used #anyOf: - > > anyOf: someTokens > "Writing without a compiler; may actually still work!" > ^ someTokens allButFirst > inject: someTokens first > into: [:acc :each | acc / each asParser] > > self anyOf: #($a $b #foo). > so, talking about consistency, where is consistency, when here you have implicit #asParser, while in rest methods not? :) maybe we should write it like that:
self anyOf: {$a asParser. $b asParser. #foo asParser }. "Consistency, Consistency, Consistency" :) > frank > >> 2012/2/28 Igor Stasenko <siguc...@gmail.com> >>> >>> Why i need to put #asParser everywhere? >>> >>> $a asParser / $b asParser / #foo asParser >>> >>> >>> a proper implementation of #/ makes the above to just: >>> >>> $a asParser / $b / #foo >>> >>> which is much more cleaner and convenient. >>> >>> Or, is there a reason to not send #asParser to every argument where >>> parser expected? >>> >>> >>> -- >>> Best regards, >>> Igor Stasenko. >>> >> > -- Best regards, Igor Stasenko.