Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
lispm
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
41 ms
·
391.
▲
by
lispm
2y ago
There are a bunch of things to learn from Lisp: * list processing -> model data as lists and process those * list processing applied to Lisp -> model programs as lists and process those -> EVAL and COMPILE * EVAL, the interpreter a
392.
▲
by
lispm
2y ago
> I think one of the reasons recursion is often emphasized in relation to Lisp is because one of Lisp's core data structures, the linked list, can be defined inductively Lisp was used in computer science education to teach "rec
393.
▲
by
lispm
2y ago
It's also not that relevant. You'll can add different syntax variants, the Lisp evaluator doesn't see parentheses in any way, just actual interned data.
394.
▲
by
lispm
2y ago
The Lisp compiler will need to figure it out and complain about various problems: undefined function/variable/tag/..., argument list mismatch, type mismatch, etc. The compiler will expand the macros at compile time and the ge
395.
▲
by
lispm
2y ago
An "AST in spirit" is in our mind, but not the machine. (let ((s (s s))) (flet ((s (s) (declare (type s s)) s)) (tagbody (s) s (go s)))) The function READ has no idea what S is: variable, operator name, data sy
396.
▲
by
lispm
2y ago
It could theoretically be a graph. For example I can make a circular list being a part of the source and the macro may process it. Get the first two items from a list and add them: CL-USER 21 > (defmacro add-2 (a)
397.
▲
by
lispm
2y ago
> Lisp ... macros typically operate on AST In Lisp they don't. See Emacs Lisp, Common Lisp, ISLISP. A Lisp macro gets only passed some data and returns some data. There is nothing like an AST. If we define a macro foo-macro and we c
398.
▲
by
lispm
2y ago
The precursor to CLIPS was called ART Inference and was a large commercial & very expensive Expert System development tool, written in Common Lisp. Unfortunately it seems to be lost - I haven't seen anything about it for several de
399.
▲
by
lispm
2y ago
> Everybody implementing their abstractions, every library implementing their own language In Lisp one can extend the language syntax. One does not need to implement a new language. For example the Common Lisp Object System adds operator
400.
▲
by
lispm
2y ago
And the possibility of using "Google" to check for name collisions seems not to be known...
401.
▲
by
lispm
2y ago
"toxic" is also to generalize from one person / one forum, to an extremely diverse group, many which never used Usenet
402.
▲
by
lispm
2y ago
> major weakness is that it makes everythign unergonomic in order to make macros very ergonomic. Generally Lisp has two main goals: * allow code to be data and data to be code * make coding and coding code (let code manipulate code) inte
403.
▲
by
lispm
2y ago
The purpose of a vector in Lisp is to provide contiguous storage with integer index addressing and O(1) access time. Cons cells are typically used to provide lists with O(n) access time.
404.
▲
by
lispm
2y ago
compare the last release dates 2012 Allegro CL 9.0 2015 Allegro CL 10.0 2017 Allegro CL 10.1 2024 Allegro CL 11.0 2012 LispWorks 6.1 2012 LispWorks 6.1.1 2015 LispWorks 7.0 2017 LispWorks 7.1 20
405.
▲
by
lispm
2y ago
LispWorks still exists and works great.
406.
▲
by
lispm
2y ago
cons cells are not the base for vectors, strings and a bunch of other datastructures. Cons cells are mostly only used for nested lists or similar.
407.
▲
by
lispm
2y ago
IMHO, the Lisp Machine experience is completely different. Those have zero educational aspects, they were designed to write large, and stateful, applications, where the Lisp Machine OS is the big stateful object-oriented operating system (l
408.
▲
by
lispm
2y ago
I totally agree.
409.
▲
by
lispm
2y ago
Maybe it's not "technical issues", but features and support? Allegro CL has a proven GUI toolkit, for example, and now they moved it into the web browser. FYI: here are the release notes of the recently release Allegro CL 11.
410.
▲
by
lispm
2y ago
The standard hasn't been updated. But progress happens in implementations and libraries.
411.
▲
by
lispm
2y ago
Which makes it very different in Racket. STRING-REST creates a new string with the contents copied from the original string, minus one character.
412.
▲
by
lispm
2y ago
Part of your expertise is not the language, but the application to embedded platforms.
413.
▲
by
lispm
2y ago
Looks problematic. Is a string in Haskell a list? I would think that in Racket a string is a vector. FIRST and REST operations then would have very different implementations.
414.
▲
by
lispm
3y ago
References: Lucid Inc. used the word internally at least since 1987, mentioning a treeshaker for Lucid CL 3.0 on the VAX. "Lisp Systems in the 1990s", Layer/Richardson, 1991 https://dl.acm.org/doi/10.1145
415.
▲
by
lispm
3y ago
One is pruning dead stuff and shaking the tree is then letting them fall down. The garbage collector then takes it away.
416.
▲
by
lispm
3y ago
The name "treeshaker" for an application delivery tool possibly originated in Lisp. The first time I've found it was in Lucid Common Lisp, a (no longer available) commercial implementation of Common Lisp for UNIX. Lucid CL 4.
417.
▲
by
lispm
3y ago
I would just use an existing Common Lisp library, which provides query and select.
418.
▲
by
lispm
3y ago
> voters can directly influence political decisions and the "elite" can influence voters through other means. That "masses" can be manipulated should be known.
419.
▲
by
lispm
3y ago
> the will of the people women were not "people"? Were they asked? If not, why not?
420.
▲
by
lispm
3y ago
> it's the majority of the real population I have questions. What is a "real" population? The swiss direct democracy is about "the majority of the real population" ? So the intiatives are won with a majority of t
More ›