{"issue":{"state":"open","pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"user":{"avatar_url":"https://secure.gravatar.com/avatar/6f256d610f74892652a0b5f9dd0a2c0d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6f256d610f74892652a0b5f9dd0a2c0d","url":"https://api.github.com/users/nandykins","login":"nandykins","id":1149047},"milestone":null,"labels":[],"updated_at":"2011-11-04T05:59:45Z","assignee":null,"closed_at":null,"comments":3,"url":"https://api.github.com/repos/nandykins/-g-pl/issues/14","body":"On second thought, I'm adding a delimiter to function calls, for which I'll use ‘;’ for now.\r\n\r\nThe problem is, if the number of parameters for a function determines the way it's parsed, then we need to know the value of a function during the parsing step, which means we can't build a complete AST before execution, so we'd have to parse stuff in realtime.\r\n\r\nThis causes two drawbacks: 1. We can't use a standard EBNF or Parsec-based parser library, 2. We can't JIT or compile the language at all.\r\n\r\nIf we introduce a ; as proposed, this gives us several advantages:\r\n\r\n1. We can build ASTs, JIT or even compile the language - speeding up execution noticeably in all three cases\r\n2. We can introduce variadic functions or optional parameters very easily\r\n\r\nAnd two cosmetic drawbacks:\r\n\r\n1. The syntax is a bit uglier, >mfw \"foo\"; instead of just >mfw foo\r\n2. We can no longer use ; inside variable names\r\n\r\nWhat do you think? I'm going to add it to the spec for now, since my current implementation breaks / is not really possible otherwise, unless I constantly re-run the parser and move expressions between blocks at runtime, but this would be very hard to do and also very slow.","html_url":"https://github.com/nandykins/-g-pl/issues/14","title":"Function call delimiter","number":14,"id":2140809,"created_at":"2011-11-04T04:55:28Z"},"action":"created","comment":{"user":{"avatar_url":"https://secure.gravatar.com/avatar/b1bfd1459f03e9f62f2398d55078de31?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b1bfd1459f03e9f62f2398d55078de31","url":"https://api.github.com/users/yate","login":"yate","id":726758},"updated_at":"2011-11-04T05:59:45Z","url":"https://api.github.com/repos/nandykins/-g-pl/issues/comments/2627543","body":"ah i see, so how the hell does perl do it lol?  there is always the option of adding parens, which I'm not entirely against.","id":2627543,"created_at":"2011-11-04T05:59:45Z"}}