Talk:Brace expansion: Difference between revisions

→‎Task is ready for accepting solutions!: shells tend to be failsoft on this
(→‎Task is ready for accepting solutions!: shells tend to be failsoft on this)
Line 6:
:Also, with the toy output, it's not at all clear that the current Perl or Python implementations are doing this according to spec. The Perl code claims to follow the spec, but the spec is missing backslashes on the commas. The Python code talks about barfing on code that the specification says it should accept. Maybe we should require a bit more rigor in proving solutions actually pass the spec for backslashed and not-really-meta characters. --[[User:TimToady|TimToady]] ([[User talk:TimToady|talk]]) 02:22, 26 January 2014 (UTC)
:: Regarding the python code: the commas not in bracers can be parsed as literal chars, but the unmatched bracers as specified by task is not workable. How do you parse "{a,{b,c}" ? As "{a", "b", "c", or as "a", "{b", "c"? Same for closing bracers. This is not just a problem with descending parsers, it's simply ambiguous and counterintuitive, so best treated as a syntax error IMO. The part of spec about "{a}" parsed literally is also not done in python, which can take some workaround but is again not intuitive. --[[User:Ledrug|Ledrug]] ([[User talk:Ledrug|talk]]) 02:37, 26 January 2014 (UTC)
:::I understand that Python culture tends more toward throwing an exception if in doubt, but I think the intent of the task was to emulate the shell's notion of how to do this, hence the failsoft aspects, which are pretty easy to do with a decent backtracking engine. It's certainly straighforward in the Perl 6 solution, once I figured out the top level parses with slightly different rules than sublevels do. And it was certainly specced how it was supposed to treat weird characters. --[[User:TimToady|TimToady]] ([[User talk:TimToady|talk]]) 02:49, 26 January 2014 (UTC)
Anonymous user