News for hackers. Stuff that matters.
Re:(λove (print (eval (read)))) by pcwalton on Monday September 09, 2013 @06:52PM (#6356829)
Erik Naggum had an impassioned defense of Lisp-2: https://groups.google.com/forum/#!msg/comp.lang.lisp/04rR3_j...

I don't buy it, but I can understand the reasoning.

Re:(λove (print (eval (read)))) by moomin on Monday September 09, 2013 @07:29PM (#6357014)
I find the reasoning specious. In particular, files and programs are the same in MS-DOS and Unix. You can, for instance, ls the ls command or cat the cat command. He's also completely ignoring the superiority of the file system's namespacing (by directory) to just having two global buckets like in elisp.

The execute bit comparison is especially specious. If I try to execute a non-executable file, it fails. It doesn't go look for an executable file with the same name. Same as if I try to invoke 0 in Clojure. e.g. (0)

He's right that the symbol resolution of the first entry has different rules but ignores the fact that the shell isn't very good at higher order commands. Which is probably okay for a shell but not much use for a modern programming language.

Finally, he's right that multiple namespaces are a good idea, but that's Accepted Truth these days. It's just that we think namespacing should be under the control of the dev, not dependent on the type of the variable.

Re:(λove (print (eval (read)))) by Theriac25 on Tuesday September 10, 2013 @04:22AM (#6358841)
> In particular, files and programs are the same in MS-DOS and Unix. You can, for instance, ls the ls command or cat the cat command.

Uh, no you cant:

  $ ls ls
  ls: cannot access ls: No such file or directory
  $ cat cat
  cat: cat: No such file or directory
Re:(λove (print (eval (read)))) by euccastro on Tuesday September 10, 2013 @05:11AM (#6358962)

    $ ls $(which ls)
    $ cat $(which cat)
Re:(λove (print (eval (read)))) by vseloved on Tuesday September 10, 2013 @07:42AM (#6359409)
looks just like (funcall #'funcall ... ;)
Re:(λove (print (eval (read)))) by Avshalom on Tuesday September 10, 2013 @01:22PM (#6361453)
Its more like

  ls /bin/ls
you can simply cat cat or ls ls by cd-ing to /bin first... with the caveat that some distros have moved them to /usr/bin or somewhere, hence the 'which'
Re:(λove (print (eval (read)))) by moomin on Wednesday September 11, 2013 @04:41PM (#6369917)
Exactly. File systems resemble modern namespaces, not namespacing by type. You can put an executable and a data file in the same directory, or not. Your choice.