On 30 Nov., 19:15, "Mark Volkmann" <[EMAIL PROTECTED]> wrote:
> Related to this is the idea that maybe the REPL should automatically > wrap a line without parens with them. That way you could just enter > "quit" instead of "(quit)". That seems handy for many things. For > example, why not enter > > println "my-var is" my-var > > instead of > > (println "my-var is" my-var) > > It's entirely possibly I'm overlooking some reason why this is a bad idea. There are two reasons why the parens exist in Lisp. The main reason is: functions taking any number of arguments. If you have functions like that you will need two delimiters, to mark the begin of a function call and the end. (+ 1 2 (* 3 4)) is clear. (+ 1 2 * 3 4) is not. Does it mean (+ 1 2 (*) 3 4) ==> 11 ;because (*) ==> 1 Or is it (+ 1 2 (* 3) 4) ==> 10 ? Or is it (+ 1 2 (* 3 4)) ==> 15 ? The example you gave, with println is not a good one, because println is such a function that takes any number of args. What if we have (def my-var (fn [] 4))? Is println "my-var =" my-var then (printn "my-var =" my-var) --> prints: my-var = #<user$my_var__1970 [EMAIL PROTECTED]> or is it (println "my-var =" (my-var)) --> prints: my-var = 4 Only for those cases where the functions take a fixed number of arguments you could do that. (defn add [a b] (+ a b)) (defn mul [a b] (* a b)) Now add 3 mul 5 5 is always clear, no parens needed. But + 3 * 5 5 is not clear. We don't know if we want to put the * function into +, which would cause an error because + is not defined to add numbers to function objects, or do we want to apply * to one or both fives? The second reason why the parens are there is that they help in building macros. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---