News for hackers. Stuff that matters.
Re:Dinosaur and Lisp by lispm on Thursday August 25, 2016 @11:04AM (#12359541)
People who can speak German dialects can understand each other. Books written in some form of German can be understood by most readers.

Same for English dialects.

For Germanic languages this is not the case. English and German are both Germanic, but knowing German does not let me read English literature.

Lisp is like English: a basic vocabulary, a basic syntax, basic semantics understood by all readers. I can look at some basic Lisp code and I will understand the program. A Lisp developer looking at Clojure code will understand very very little.

Re:Dinosaur and Lisp by gkya on Thursday August 25, 2016 @04:45PM (#12362354)
English is such an oddball in the Germanic family that I'd count it an outlier. About 40% of its vocabulary is of Latin origin, and in sum about 60% of its vocabulary is made up of loan words. A couple years ago I submitted the "Uncleftish Behaviour" here [1], which demonstrates English with only germanic words.

[1] https://news.ycombinator.com/item?id=7671549

For the rest of the family, there's a lot of mutual intelligibility. And, a metaphor is a metaphor, no metaphor holds if you dig deep enough.

> A Lisp developer looking at Clojure code will understand very very little.

This is an assumption, not a fact. Java interop code and (recur) are a bit confusing in the first sight, but not undecipherable.

The prog lang that's most like English is C++: too many things are overtly overloaded, see phrasal verbs.

Re:Dinosaur and Lisp by lispm on Thursday August 25, 2016 @05:00PM (#12362465)
Clojure borrows from C++, C#, Common Lisp, Erlang, Haskell, Mathematica, ML, Prolog, Scheme, Java, Racket, Ruby - according to Wikipedia.

I would guess that 10% of its operator names come from Lisp. Okay, that's a wild guess. Let's look at the special forms:

def-, if+, do-, let+, quote+, var-, fn-, loop-, recur-, throw-, try-, monitor-enter-, monitor-exit, ...

Around three from thirteen special forms have roughly the same name/meaning in Lisp.

Let's look at printing: pr-, prn-, print-, println-, newline-. None Lisp names, either they don't exist in Lisp under that name or they do something else. PR and PRN don't exist in Lisp. PRINT prints a newline before printing the object. PRINTLN does not exist in Lisp. NEWLINE is called TERPRI. Thus even for a simple thing as basic IO the API is different.

Re:Dinosaur and Lisp by qwertyuiop924 on Friday August 26, 2016 @03:52PM (#12368853)
Small differences in IO are usually simple to deal with, and quite common between other lisps, such as Scheme, and picolisp.
Re:Dinosaur and Lisp by qwertyuiop924 on Thursday August 25, 2016 @02:20PM (#12361194)
Really? It's pretty easy to get, with a few pointers here and there.
Re:Dinosaur and Lisp by lispm on Thursday August 25, 2016 @02:29PM (#12361250)
Good luck reading Thomas Mann or Hermann Hesse in German...

Any modern fiction. No chance.

Re:Dinosaur and Lisp by qwertyuiop924 on Thursday August 25, 2016 @03:19PM (#12361680)
rolls eyes

Not German, Clojure. Clojure is pretty easy.

Re:Dinosaur and Lisp by lispm on Thursday August 25, 2016 @04:38PM (#12362299)
Really? You must be really good at Clojure. Then you can explain this:

    user=> (list 1 2 3)
    (1 2 3)
    user=> (list? (list 1 2 3))
    true
so (1 2 3) is a list.

    user=> (cons 0 (list 1 2 3))
    (0 1 2 3)
    user=> (list? (cons 0 (list 1 2 3)))
    false
(0 1 2 3) is not a list?

    user=> (list? '(0 1 2 3))        
    true
But then it is???

WTF?

Compare ELISP:

    ELISP> (listp (list 1 2 3))
    t
    ELISP> (listp (cons 0 (list 1 2 3)))
    t
and CL:

    CL-USER> (listp (list 1 2 3))
    T                                                                                                                                       
    CL-USER> (listp (cons 0 (list 1 2 3)))
    T
Re:Dinosaur and Lisp by qwertyuiop924 on Thursday August 25, 2016 @06:28PM (#12362994)
That's pretty screwed up, but having brain-damged function naming doesn't mean it's not lisp. And a few odd corners does not illegability make.
Re:Dinosaur and Lisp by kazinator on Thursday August 25, 2016 @10:04PM (#12363880)
Try TXR Lisp; you will be charmed.

http://www.nongnu.org/txr

Re:Dinosaur and Lisp by qwertyuiop924 on Friday August 26, 2016 @07:44AM (#12365515)
Thanks kaz, but I've already got the manpage bookmarked. I haven't looked at it in-depth yet, but it seems to be awk, but better, which is pretty awesome.
Re:Dinosaur and Lisp by kazinator on Friday August 26, 2016 @11:28AM (#12366912)
You can also completely ignore the "awk-but-different" TXR pattern-based extraction language, and just use it as a Lisp, too. The REPL is nothing but Lisp, and code stored in ".tl" files is treated as Lisp. TXR Lisp is designed to be a nice Lisp dialect on its own, not to just fill in the gaps in another language.
Re:Dinosaur and Lisp by qwertyuiop924 on Friday August 26, 2016 @03:03PM (#12368503)
Well, yeah, but why have one awesome thing when you can have two? I have to finish reading the docs, so I know how it works, though.