Can anyone tell me the reasoning behind why arc has gone with lisp-style function definitions, i.e. (def foo (x y) <body>) instead of scheme-style function definitions: (def (foo x y) <body>)? Lisp-style seems to have the feature that function definitions have greater resemblance to anonymous functions, but this isn't necessarily an advantage (although I think it is). On the other hand, scheme-style definitions have the advantages that they look less like non-function definitions. They also look more like calls, making it easier to think of them in terms of substitution, but I'm not convinced that this is an advantage just yet. Also, they're a lot easier to translate into scheme ;) Thoughts? |