re: Top 43 Programming Languages: When and How to Use Them VIEW POST

re: I'm surprised to see Lisp dialects considered "difficult to learn" (vs Java "moderate to difficult) with "verbose syntax" ?

Yeah... I mean, how hard is it to remember the single type of parenthesis that Lisps use? As opposed to ascii pot-pourri of most other languages.

Reminded of:

Compilation started at Wed Nov 14 12:42:13

make -k parens

fact.lisp             20 parentheses, braces, brackets, angle-brackets ,semi-colons, commas
fact.c                31 parentheses, braces, brackets, angle-brackets ,semi-colons, commas

==== fact.lisp ====
(defun fact (x)
  (if (zerop x)
      (* x (fact (1- x)))))
(format t "~%~D! = ~D~%" 42 (fact 42))

==== fact.c ====
#include <stdio.h>

int fact(int x){

int main(){
   printf("\n%d! = %d\n",42,fact(42));

Compilation finished at Wed Nov 14 12:42:13

And yet, this is C with lisp style. In any project with coding guidelines, you'd have to write:

   return (1);
   return (x*fact(x-1));

increasing the count of braces...

Not that I want to play parenthesis golf with you...

(defun fact (n) 
  (loop for i from n downto 1
        for x = n then (* x i) 
        maximize x))

(maximize is definitely a bit of a hack - should really be finally (return x) but that'd be another pair of parens)

code of conduct - report abuse