Earlier quoted context omitted.
How do you sneak something like lisp in to work?
You build trust with stakeholders, usually by solving important problems until you reach a point at which having you solve a new problem is more important to them than what you solve it with. It helps if whatever tech you are introducing actually helps you in the task of solving more problems, increasing quality of solutions or reducing cost, in that particular order.
How to write Common Lisp in 2017 – an initiation manual
181–190 of 271 posts
Re: How to write Common Lisp in 2017 – an initiation manual
#182Earlier quoted context omitted.
Clojure is tied to the Java environment. Someone who has no use for or interest in that environment has no use for Clojure.
> Clojure is tied to the Java environment. I guess you're not familiar with ClojureScript and/or Clojure CLR?
Re: How to write Common Lisp in 2017 – an initiation manual
#183Earlier quoted context omitted.
Have you tried out recent versions of CIDER? I find it works good for that I need. But I have to say that the big problem I have is Emacs and its inability to handle long strings.
I may be missing some massive leap but until it does this http://malisper.me/2015/07/07/debugging-lisp-part-1-recompil...
Here's a 39 second video about it https://www.youtube.com/watch?v=A3JAlWM8qRM
Re: How to write Common Lisp in 2017 – an initiation manual
#184Short answer: don't do that, use Clojure instead. It doesn't have any of listed problems.
I am sure there are plenty of people who have a preferred Lisp. It does drive me nuts how if there is a post on R the top comments are people touting Python as being the bigger player in statistics and data science (Which it isn't) or a ton of other languages. PS I perfer Racket :)
Re: How to write Common Lisp in 2017 – an initiation manual
#185Earlier quoted context omitted.
I may be missing some massive leap but until it does this http://malisper.me/2015/07/07/debugging-lisp-part-1-recompil...
CIDER has had debugging abilities like this for a year, there's a sexp based interactive debugger that allows injection, evaluation, stepping etc. Here's a 39 second video about it https://www.youtube.com/watch?v=A3JAlWM8qRM
That's something different.
In a Lisp system I would have an arbitrary amount of code and can halt and inspect/debug any code without any prior need to 'instrument' code.
Re: How to write Common Lisp in 2017 – an initiation manual
#186How does Common Lisp compares to Racket nowadays? I've seen a lot of activity but I can't decide which one to try out. I only have time for one of them ATM.
1. Racket is a multi-paradigm programming language. It has Java-style class/object system, a CLOS-like object system(swindle) and a prototype object system (like self and JavaScript). 2. The macro system is arguably the most sophisticated available. 3. Functionsl programming! including '(purely)Functional Data Structures'. 4. Parallelism (futures) 5. concurrency 6. Contracts 7. Typed Racket 8. Pattern matching 9. Mod…
This may be true for an experienced user, but I've mainly used VS Code/Atom/Sublime etc, and I did not enjoy DrRacket -- I'm assuming that's what you're talking about. Some of the dropdown menus didn't render for me, and while this may sound stupid, I had the damnedest time figuring out that half my screen was a REPL and the other half a file.
Re: How to write Common Lisp in 2017 – an initiation manual
#187Earlier quoted context omitted.
I don't know about emacs/slime, but it can manage local quicklisp and local implementations (and even have e.g. multiple sbcl versions installed simultaneously).
This sounds a lot like Pyenv and Virtualenv for Python. Neat!
Re: How to write Common Lisp in 2017 – an initiation manual
#188Earlier quoted context omitted.
I mentioned elsewhere I'm learning Common Lisp. I'm also learning Python by translating some Common Lisp code into Python and part of that is to make sure I understand what the Common Lisp is doing. As an understatement, that's meant building some very unPythonic abstractions (yay, me). Anyway, I think there is a fundamental design difference between Common Lisp and other 'first class' programming languages: Common L…
I have a couple REPLs for specific projects that I routinely keep running for months at a time. The idea that user = programmer was part of the MIT AI Lab culture before there were Lisp Machines. For example, the top level of ITS, the PDP-10 OS they used, was the debugger. Imagine if the default Linux shell was GDB!
Re: How to write Common Lisp in 2017 – an initiation manual
#189While people are directing their attention here: Last year I looked into Common Lisp for a while, but got turned off when I found that there's no distinction between the empty list and boolean false (or nil, in CL-speak). I found this kinda weird and vaguely off-putting. I don't want to write code to handle the diffence between, say, an empty array and false or null in deserialized JSON data. Can anyone comment on wh…
It comes up in practice but is easilly avoided with the mapping of: null -> :null [] -> #() and false -> nil Mapping arrays to lists instead of arrays seems wrong to me, but is what most json libraries do by default. Fortunately most of them allow you to change that.
Re: How to write Common Lisp in 2017 – an initiation manual
#190Earlier quoted context omitted.
I guess I just don't see a disadvantage. An array is a pure function, no side effects, so it should always be safe to treat it as one.
One disadvantage: you can't inline the code for such a vector reference, unless the compiler knows at compile time that this is a vector reference.