Live data from Hacker News

DotLisp – A Lisp dialect for .Net

dotlisp.sourceforge.net

21–26 of 26 posts

Re: DotLisp – A Lisp dialect for .Net

#21
post #14

Earlier quoted context omitted.

Genius is a little strong in my opinion. Still an intelligent and talent man I'm sure. In my opinion he has made some questionable decisions with Clojure. - Gratuitous use of [] in some forms; mainly defn and let. Why break the homonicity so often for no real benefit? - Comment strings appearing before argument lists in functions. I would like to see the entire protocol, name and args, before reading the docstring wh…

> Why break the homonicity so often for no real benefit? I don't think you understand what homoiconicity means.

I see your point, I think you may downvoted because you did not elaborate rather than just say "you're wrong".

Let me see if I can elaborate on what I think you mean. Homoiconic can be interpreted as meaning that the programs structure is similar to it's internal representation and so then it can be argued that an argument list is implemented as a vector and so should be represented as such.

But I would suggestion that this is an implementation detail and would hazard that many Lisp implementation might share this implementation strategy. I suppose I should have described it as something along the lines of needlessly breaking with Lisp syntax traditions.

As an aside the reader macros themselves are not the problem as lists are not a one size fits all data structure within current computing so there is a need for vectors and hash maps etc.

Re: DotLisp – A Lisp dialect for .Net

#22
post #14
post #12

Earlier quoted context omitted.

How things change. Rich Hickey is a genius. A nice man. A practical man. A modest man. A role model for our industry.

Genius is a little strong in my opinion. Still an intelligent and talent man I'm sure. In my opinion he has made some questionable decisions with Clojure. - Gratuitous use of [] in some forms; mainly defn and let. Why break the homonicity so often for no real benefit? - Comment strings appearing before argument lists in functions. I would like to see the entire protocol, name and args, before reading the docstring wh…

Regarding:

    "- Comment strings appearing before argument lists in
    functions. I would like to see the entire protocol, 
    name and args, before reading the docstring which may 
    refer to the args."
I think writing one doc string for a multivariate function is better than having to write one for many. Check out clojure core's min function:

    (defn ^number min
      "Returns the least of the nums."
      ([x] x)
      ([x y] (cljs.core/min x y))
      ([x y & more]
       (reduce min (cljs.core/min x y) more)))

So there are occasions for this related to efficiency. Where would you prefer the docstring?

Re: DotLisp – A Lisp dialect for .Net

#23
post #14
post #12

Earlier quoted context omitted.

How things change. Rich Hickey is a genius. A nice man. A practical man. A modest man. A role model for our industry.

Genius is a little strong in my opinion. Still an intelligent and talent man I'm sure. In my opinion he has made some questionable decisions with Clojure. - Gratuitous use of [] in some forms; mainly defn and let. Why break the homonicity so often for no real benefit? - Comment strings appearing before argument lists in functions. I would like to see the entire protocol, name and args, before reading the docstring wh…

> List? predicate... (list? '(1)) => true (list? '(1 2)) => false

Uh? That doesn't seem to be the case on http://tryclj.com/ or according to http://clojuredocs.org/clojure.core/list_q .

Re: DotLisp – A Lisp dialect for .Net

#24
post #23
post #14

Earlier quoted context omitted.

Genius is a little strong in my opinion. Still an intelligent and talent man I'm sure. In my opinion he has made some questionable decisions with Clojure. - Gratuitous use of [] in some forms; mainly defn and let. Why break the homonicity so often for no real benefit? - Comment strings appearing before argument lists in functions. I would like to see the entire protocol, name and args, before reading the docstring wh…

> List? predicate... (list? '(1)) => true (list? '(1 2)) => false Uh? That doesn't seem to be the case on http://tryclj.com/ or according to http://clojuredocs.org/clojure.core/list_q .

syntax-quote can cause this:

  > (type `(1))
  clojure.lang.PersistentList
  > (type `(1 2))
  clojure.lang.Cons
  > (list? `(1 2))
  false
edit: however http://clojure.org/reader#syntax-quote does specify that syntax-quote is not the same as quote for some forms, including lists.

Re: DotLisp – A Lisp dialect for .Net

#25

Earlier quoted context omitted.

What were the other 3?

You know, I forget now. It was a trivia question at Clojure/Conj 2012.

"Only" two others, AFAIK, Jfli and FOIL:

http://jfli.sourceforge.net/ http://foil.sourceforge.net/

Both were (are? I can imagine people are still using them, Jfli in particular) interop libraries, not languages. FOIL is basically an RPC mechanism between a Common Lisp process and a JVM or CLR "host". JFli makes it reasonably easy to embed a JVM within a Common Lisp process, and thereby create Java objects from CL, call methods, and provide callbacks to Java methods written in CL.

(That's all IIRC, it's been a long time.)

I remember using JFli briefly during my later CL experimentation. Its model is very similar to jpype, which provides similar functionality for python, which was at the time my first committed step away from Java as my primary (production) language.

The prize was a sweet nylon set-up-anywhere hammock, BTW. I think Stuart was mildly irked that mine was the only hand that was up, but I thought the hammock looked neat. :-)

Re: DotLisp – A Lisp dialect for .Net

#26
post #14

Earlier quoted context omitted.

Genius is a little strong in my opinion. Still an intelligent and talent man I'm sure. In my opinion he has made some questionable decisions with Clojure. - Gratuitous use of [] in some forms; mainly defn and let. Why break the homonicity so often for no real benefit? - Comment strings appearing before argument lists in functions. I would like to see the entire protocol, name and args, before reading the docstring wh…

"- Gratuitous use of [] in some forms; mainly defn and let. Why break the homonicity so often for no real benefit?" [] is an array data type, () is a list. Code and data are still the same.

Clojure code is surprisingly hard to edit for a Lisp-like language. The gratuitous use of square brackets where a Lisp would just use parentheses is part of that.

Omitting the parentheses inside those square brackets, however, was an even worse decision wrt editability. When you can't edit a sequence of syntactically homogenous items by simple s-expression manipulations, your Lisp's design is defective.

Post reply on HN