Comment on Lisp implementation in sedparentComments−KC8ZKF12yAnother theory is that there are far fewer symbols in Lisp than python or coffeewhatever, making it easier to read.−rtpg12ythis is more of a "symbols per line" argument rather than "symbols in the language" argument. grade = (student) -> if student.excellentWork "A+" else if student.okayStuff if student.triedHard then "B" else "B-" else "C" (from coffescript examples)Imagine how many more symbols that would have in any lisp dialect−lispm12y (defun grade (student) (cond ((excellent-work student) :a+) ((okay-stuff student) (if (tried-hard student) :b :b-)) (t :c)))−illo12yErlang, just for fun: grade(#student{work=Work, tried_hard=Tried}) -> grade1(Work, Tried). grade1(excellent_work, _) -> 'a+'; grade1(okay_stuff, yes) -> b; grade1(okay_stuff, _) -> 'b-'; grade1(_, _) -> c. Edit: formatting.−JadeNB12yOr, if we're going to go with Prolog-inspired syntax, then why not Prolog? grade(Student, Grade) :- worked(Student, Work), work_grade(Work, Student, Grade). work_grade('Excellent', _, 'A+'). work_grade('Okay', Student, 'B') :- tried_hard(Student). work_grade('Okay', _, 'B-'). work_grade(_, _, 'C'). I'm a bit rusty, and I don't have a Prolog interpreter to hand to test, so I might have got some syntax wrong.−sfk12yI'm always amazed that I hardly ever program in Lisp and yet these short snippets are more readable than any other language.−dghf12yYes, I've never understood why dostuff(x) is considered so much more readable than (dostuff x)−bad_login12y ;; comparing with racket: (define (grade student) (cond [(excellent-work student) "A+"] [(and (okay-stuff student) (tried-hard student)) "B"] [(okay-stuff student) "B-"] [else "C"])) ;; Or (require racket/match) (define (grade student) (match (map (lambda (fn) (fn student)) '(excellent-work okay-stuff tried-hard)) [(list #t _ _) "A+"] [(list _ #t #t) "B"] [(list _ #t _) "B-"] [else "C"]))−dghf12yClojure: (defn grade [student] (cond (excellent-work student) "A+" (okay-stuff student) (if (tried-hard student) "B" "B-") :else "C"))
Comments
Another theory is that there are far fewer symbols in Lisp than python or coffeewhatever, making it easier to read.
this is more of a "symbols per line" argument rather than "symbols in the language" argument.
(from coffescript examples)Imagine how many more symbols that would have in any lisp dialect
Erlang, just for fun:
Edit: formatting.Or, if we're going to go with Prolog-inspired syntax, then why not Prolog?
I'm a bit rusty, and I don't have a Prolog interpreter to hand to test, so I might have got some syntax wrong.I'm always amazed that I hardly ever program in Lisp and yet these short snippets are more readable than any other language.
Yes, I've never understood why
is considered so much more readable thanClojure: