← Home ← Back to /g/

Thread 106094218

319 posts 110 images /g/
Anonymous No.106094218 [Report] >>106149409 >>106170728 >>106170731
(λ) - Lisp General
>Lisp is a family of programming languages with a long history and a distinctive parenthesized prefix notation. There are many dialects of Lisp, including Common Lisp, Scheme, Clojure and Elisp.

>Emacs is an extensible, customizable, self-documenting free/libre text editor and computing environment, with a Lisp interpreter at its core.

>Emacs Resources
https://gnu.org/s/emacs
https://github.com/emacs-tw/awesome-emacs
https://github.com/systemcrafters/crafted-emacs

>Learning Emacs
C-h t (Interactive Tutorial)
https://emacs.amodernist.com
https://systemcrafters.net/emacs-from-scratch
http://xahlee.info/emacs
https://emacs.tv

>Emacs Distros
https://spacemacs.org
https://doomemacs.org

>Elisp
Docs: C-h f [function] C-h v [variable] C-h k [keybinding] C-h m [mode] M-x ielm [REPL]
https://gnu.org/s/emacs/manual/eintr.html
https://gnu.org/s/emacs/manual/elisp.html
https://github.com/emacs-tw/awesome-elisp

>Common Lisp
https://lispcookbook.github.io/cl-cookbook
https://cs.cmu.edu/~dst/LispBook
https://gigamonkeys.com/book
https://lem-project.github.io
https://stumpwm.github.io
https://nyxt-browser.com
https://awesome-cl.com

>Scheme
https://scheme.org
https://try.scheme.org
https://get.scheme.org
https://books.scheme.org
https://standards.scheme.org
https://go.scheme.org/awesome
https://research.scheme.org/lambda-papers

>Clojure
https://clojure.org
https://tryclojure.org
https://clojure-doc.org
https://www.clojure-toolbox.com
https://mooc.fi/courses/2014/clojure
https://clojure.org/community/resources

>Other
https://github.com/dundalek/awesome-lisp-languages

>Guix
https://guix.gnu.org
https://nonguix.org
https://systemcrafters.net/craft-your-system-with-guix
https://futurile.net/resources/guix
https://github.com/franzos/awesome-guix

>SICP/HtDP
https://web.mit.edu/6.001/6.037/sicp.pdf
https://htdp.org

>More Lisp Resources
https://rentry.org/lispresources

(reset! prev-bread >>106004428)
Anonymous No.106094241 [Report] >>106095136
first for Clojure is the most productive language in existence ATM
Anonymous No.106094242 [Report]
>>106070627
>https://github.com/phronmophobic/easel/
>https://www.youtube.com/watch?v=hpjJJqnkqCw
>Integrate anything: web, 2d graphics, 3d graphics, video, plots, widgets, games, terminal, data inspectors, debuggers, etc
Impressive, very nice.
Anonymous No.106094288 [Report] >>106094446
>>106094210
How is it wrong? You can use a list like a set, CL has functions for doing exactly that.
Anonymous No.106094326 [Report]
A list is a strict superset of a set, it's literally just a set with ordering.
Also there's multiple entire libraries of purely functional equivalents to all of CLs destructive operations.
Like for example modf, which works exactly like setf and is capable of all it's actions, but which returns a new value and doesn't alter the original.
Anonymous No.106094446 [Report] >>106094475
>>106094288
do lists have the performance characteristics of hash sets? tree sets?
no, they do not.
Anonymous No.106094475 [Report] >>106094522
>>106094446
Depending on what you store in your hash set, it might have worse performance characteristics. CL also has hashtables, which you can use as sets when you use T as a value.
Anonymous No.106094522 [Report] >>106094582 >>106095469 >>106095501
>>106094475
>Depending on what you store in your hash set
no shit, this is literally the entire basis behind having multiple data structures. you optimize how you store your data based on how you access and interact with that data. there are many cases that I have found where you want a tree structure for storing numerous elements, such as sets of jobs with differing priorities, where new jobs may be inserted with whatever priority, and jobs may finish at many moment and thus be removed. you need to be able to query the minimum and maximum priority of any active job at any moment.
anyway, yes, Common Lisp can obviously be used to implement any data structure you need. I'm not here to shit on CL. I'm here to claim that, at this very moment, I can use Clojure and have access to persistent vectors, lists, hash maps, sorted maps, hash sets, and sorted sets. I can trivially use any standardized Java collection, of which all of these categories are met in a mutable fashion for extremely fast performance. I can access any data structure in the vast Java ecosystem for things like roaring bitmaps, directed graphs, etc. see Google's Guava lib, or Apache Commons Collection lib.
Anonymous No.106094582 [Report] >>106094607
>>106094522
Yeah and CL also has all those data structures and can even use all those java libraries too.
I'm not seeing your point.
Anonymous No.106094587 [Report]
>new maxima release
https://maxima.sourceforge.io
https://sourceforge.net/p/maxima/code/ci/master/tree/changelogs/ChangeLog-5.48.md
pretty gud
very underrated lisp software
Anonymous No.106094607 [Report] >>106095382
>>106094582
>ABCL
this is true
how good is its Java interop when compared to Clojure?
Anonymous No.106095136 [Report] >>106152116
>>106094241
what about clojure with an dsl implemented in uiua?
Anonymous No.106095382 [Report]
>>106094607
>>ABCL
>this is true
>how good is its Java interop when compared to Clojure?

ABCL has extremely easy Java interop. But the idea is that you mainly work in Lisp and occasionally call some java libraries. Not like Clojure where the JVM classes all leak into Clojure data structures, for example.

I have done it, and it's helpful because thanks for the true interactive development of CL, you can load JVM classes at runtime, inspect what is inside, etc etc, without having to recompile anything or restart your project. Very useful, i'd say.

All in all, ABCL is impressive. I don't use it anymore because I prefer compiling CL to native code; it runs much faster, obviously.
Anonymous No.106095469 [Report] >>106095518
>>106094522
>I can trivially use any standardized Java collection

We can do that in Common Lisp too, at least three (3) choices:

a. Use ABCL (open source, free) thus your Lisp code also runs on the JVM. Java interop is extremely easy.

b. Use Allegro CL (commercial license, though), which will mean your Lisp code will be compiled to machine language, executing massively faster than clojure.

This is what it offers, among other stuff:
"Java Tool Suite: Package applications as Java Beans or Servlets, directly call Java methods from Lisp methods and vice versa, and dynamically generate Java byte codes to run on JVMs. With jLinker, application programmers can choose the socket interface or native JNI interface on most platforms"

c. Use LispWorks (commercial and free licenses available), which also can call Java from Lisp and viceversa. Similarly, your Lisp code will be compiled to machine language, executing massively faster than clojure.

(b) and (c) are professional products with extensive success stories and professional support.
Anonymous No.106095501 [Report] >>106095544
>>106094522
>to persistent vectors, lists, hash maps, sorted maps, hash sets, and sorted sets

I can also have access to all of those using CL.

For persistency, serializing almost any Lisp data structure is a piece of cake, only one line of code with cl-conspack.

Furthermore, most likely some of today's often-used data structures were first prototyped in Lisp...
Anonymous No.106095518 [Report] >>106099142
>>106095469
>executing massively faster than clojure
I highly, highly doubt that. the JVM has far more resources put into it than Allegro/LispWorks can afford.
Anonymous No.106095544 [Report]
>>106095501
persistent data structures do not involve serialization, Anon. also Clojure has EDN for serialization, as well as whatever Java supports (including https://github.com/EsotericSoftware/kryo)
Anonymous No.106095585 [Report] >>106095681 >>106096132 >>106101718
what music do you listen to while cooding Lisp? for me, it's https://www.youtube.com/watch?v=H6r3QAsPI5U
Anonymous No.106095681 [Report] >>106095835
>>106095585
The sexp express https://youtu.be/IpeRShWMdYM
Anonymous No.106095835 [Report]
>>106095681
Anonymous No.106096132 [Report] >>106097274 >>106098520
>>106095585
https://www.youtube.com/watch?v=aHk42kDwesM
Anonymous No.106096276 [Report]
ONCE AGAIN:
CL when single-threaded performance, native execution, startup times, or C FFI are important, Clojure all other times. It's that simple. You can choose more than one language for a single project too.
now fuck off with your dumb arguments
Anonymous No.106096320 [Report] >>106128362
>>106093626
>>106094006
Thank you for answering, but I'm not quite sure I get it yet.
If the main difference really is only the scope, would it be wrong to set everything with setq-default and only using setq on a case-by-case basis? For example, having the indentation be 4 on everything with setq-default but (for whatever reason) using 8 only on the C major mode with setq?
Anonymous No.106097274 [Report]
>>106096132
Finally, I have achieved either satori or brain damage
Anonymous No.106097297 [Report]
(setopt debugger-stack-frame-as-list t)


This makes stackframes in Elisp look way better. A lot of times, pieces of the stackframe are almost executable. You might have to add a little quoting, but it's nice to see the actual function call + parameters that caused a bug and then be able to run it.
Anonymous No.106097439 [Report] >>106097742 >>106099002 >>106100629 >>106101048 >>106102042
Anyone who uses eww on pages with large images or org documents with large images should check out ultra-scroll. It makes it so that large images in a buffer can be scrolled smoothly (without the jank).
https://github.com/jdtsmith/ultra-scroll

Attached is a video demonstration of me scrolling down a web page with a lot of images in eww. This was the URL if anyone wants to try it themselves.
https://www.realestate-tokyo.com/rent/monthly-apartments-matsuri-technologies/
Anonymous No.106097742 [Report] >>106097893 >>106097947 >>106101842 >>106102087
>>106097439
Have you tried that package with elfeed? It doesn't work for me. It'd be really nice to use that package as I often use emacs on my phone to read my rss feed and images are really annoying with it.
Anonymous No.106097893 [Report]
>>106097742
I'm not currently an elfeed user, so no I haven't tried it out that way yet. Did it work for you in eww at least? (I didn't do any mode-specific config. I feel like it shouldn't matter what mode you're in.)
Anonymous No.106097947 [Report]
>>106097742
Also, on my desktop it's only setup to scroll nicely when I use my mouse wheel. Using the keyboard scrolls the original way.
Anonymous No.106098158 [Report]
C-M-l (which is mapped to reposition-window) is kinda nice. It's like C-l, but it's aware of functions. It scrolls the window such that the function or definition you're currently in is maximally visible.
Anonymous No.106098520 [Report]
>>106096132
>15 years ago
Holy fuck
Anonymous No.106099002 [Report]
>>106097439
This is the shell script I used to record the window.
#!/bin/bash
slop=$(slop --nodecorations -f "%x %y %w %h %g %i") || exit 1
read -r X Y W H G ID <<< $slop
ffmpeg -f x11grab -s "$W"x"$H" -i :0.0+$X,$Y $@

Usage:
screen-record video.webm
# Then choose the window to record.
# When you're done, Ctrl-C.
Anonymous No.106099142 [Report] >>106099405
>>106095518
>I highly, highly doubt that. the JVM has far more resources put into it than Allegro/LispWorks can afford.

What part of "direct compilation to machine language" and "no virtual machine behind" is hard to understand here?
Anonymous No.106099405 [Report] >>106103325
>>106099142
The JVM having all those resources put into it only made it minimally acceptable.
It’s fundamentally a stack based VM running on register hardware. At one point IBM has 2400 researchers working on it, and in the 90s IBM donated their fixed point code and algorithms from the 70s that was used on mainframes.
The whole JVM thing was not viable from the get go. Only tesponses posted from the HotJava browser will be accepted.

Single cores are pretty fast now, but it’s clear lispen will really start to shine in multi-core processors, unfortunately for elisp, that ship might have sailed, but there is a chance for some of the other ones that don’t target the JVM.
It’s funny, even when it was clear that processors were on the rise with Sun E10K with 64 of them, they still hadn’t implemented the synchronized keyword. Java and the JVM remain worthless, bloated, slow, slop.
Anonymous No.106100629 [Report]
>>106097439
>https://github.com/jdtsmith/ultra-scroll
very nice
Anonymous No.106101048 [Report] >>106101585
>>106097439
What theme is this?
Anonymous No.106101163 [Report] >>106101234 >>106103273
bros how do i tell sbcl to shut the hell up about type comparison notes?

I'm just trying to run this:
https://gist.github.com/matthew-ball/4499300
and have added type declarations on absolutely everything at this point, and it still wont shut up when i try to compile it. it runs fine, it's just xlib type optimization nonsense from the clx/xlib code. i just want it to leave me alone ;-;
Anonymous No.106101234 [Report]
>>106101163
never mind, i got it. it was this:
(declaim (sb-ext:muffle-conditions sb-ext:compiler-note))

but for some reason it wasn't working when i tried compiling it with C-c C-c. it only worked once I put it in the repl and then compiled the function. phew, i was going insane
Anonymous No.106101585 [Report]
>>106101048
ef-reverie
Anonymous No.106101718 [Report] >>106101750 >>106101762
>>106095585
https://www.youtube.com/watch?v=ed8N141l9FQ&list=RDed8N141l9FQ&start_radio=1

I want to experiment with lisp cffi to make bindings to raylib
Anonymous No.106101750 [Report]
>>106101718
https://www.raylib.com/
i like their web site.
Anonymous No.106101762 [Report] >>106101800
>>106101718
Have you tried using
https://github.com/longlene/cl-raylib
?
Anonymous No.106101800 [Report]
>>106101762
I know it exists but I am curious to do it by my own. I want to understand how it's done. I don't think I will import everything.
Anonymous No.106101842 [Report] >>106111271
>>106097742
>as I often use emacs on my phone
How? Emacs from fdroid? How do you deal with the lack of keyboard
Anonymous No.106102042 [Report] >>106118230
>>106097439
If you have a pointing device that can send high-precision scrolling events, it's super smooth. I just tried it on my laptop and scrolled using the touchpad, and it is pixel-precise. I never thought I'd see the day Emacs scrolled this smoothly.

My laptop happens to be a Thinkpad, so scrolling with the clit wasn't enough. I had to scroll with the touchpad. They both send <wheel-up> events, but I guess the data from the touchpad is more precise.
Anonymous No.106102087 [Report]
>>106097742
>I often use emacs on my phone
I tried emacs on my phone, and I didn't try to put ultra-scroll on it yet, but I did `C-h k` and then tried scrolling to see what event it used -- <touchscreen-scroll>.

Then I looked over in the ultra-scroll repo, and there's no mention of '<touchscreen-scroll>' anywhere. You might have to bind '<touchscreen-scroll>' to #'ultra-scroll yourself.
(keymap-global-set "<touchscreen-scroll>" #'ultra-scroll)
Anonymous No.106102980 [Report] >>106103325
https://benchmarksgame-team.pages.debian.net/benchmarksgame/index.html
^-- Wasn't there a dynamic version of this in the past where you could submit a form to compare two languages against each other? Is it still around anywhere?
Anonymous No.106103273 [Report] >>106105314
>>106101163
It only prints these on optimize level 3 afaik. You must have some global optimize declaration somewhere.
Anonymous No.106103325 [Report] >>106104099
>>106099405
Don't underestimate the JVM.
https://rentry.org/java-vs-sbcl

>>106102980
Data:
https://salsa.debian.org/benchmarksgame-team/benchmarksgame/-/tree/master/public/data
I modified their makemd.py to just print java and sbcl results.
Anonymous No.106103738 [Report] >>106109691
I really like pcase and now pcase-let*. They make Elisp programming more fun for me.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Destructuring-with-pcase-Patterns.html
Anonymous No.106104099 [Report] >>106104230
>>106103325
Sort your tables by execution time, queer
Anonymous No.106104230 [Report]
>>106104099
Rude
Anonymous No.106105314 [Report]
>>106103273
hmmm if i run this (same way as the muffle-conditions), it still prints them though:
(declaim (optimize (speed 0) (safety 0) (safety 0)))
Anonymous No.106106181 [Report] >>106107234 >>106107875 >>106107974 >>106190224
aspell or hunspell for spell checking in emacs? which one is better?
Anonymous No.106107234 [Report]
>>106106181
just do it, alt-shift-4 (i.e. m-$) is great. then if you don't like the suggestions, switch a backend. that's it.
Anonymous No.106107875 [Report] >>106118309
>>106106181
What does Emacs use by default? I've never configured it, but I use ispell-word from time to time. Whatever the default is seems to be enough for me.
Anonymous No.106107974 [Report] >>106114730 >>106118309
>>106106181
jinx
https://github.com/minad/jinx
Anonymous No.106109691 [Report] >>106111341
>>106103738
All of stefan monnier's stuff is great. I extensively use pcase (check out pcase-defmacro, pcase-lambda and pcase-dolist), cl-generic (cl-generic-define-generalizer has allowed me to do some cool things), oclosures, gv, define-inline for easier compiler macros, and other stuff I haven't used yet.
Anonymous No.106111271 [Report]
>>106101842
https://www.emacswiki.org/emacs/EmacsOnAndroid
Anonymous No.106111341 [Report]
>>106109691
>stefan monnier
I didn't know who he was, but an initial search leads me to believe I should be very grateful for the work he has done in the past for Emacs and Elisp.

>(check out pcase-defmacro, pcase-lambda and pcase-dolist)
I'll get there eventually.
- I started with pcase maybe a month or two ago, and enjoyed getting pattern matching in Elisp.
- I just found pcase-let* last night, and being able to do destructured binding of variables save me a little time (but more importantly, brought a smile to my face). It was very satisfying to use.

>cl-generic
I am a big fan of generic methods. I have used them in Julia and Common Lisp. However, I haven't yet had a chance to use them in Elisp.
Anonymous No.106112945 [Report] >>106113488 >>106137378 >>106137402
hey guys, where can i find a good tutorial or something for CLOS? I always read people glazing it but i don't get it lol maybe i've been too indian'd by python that now i can't conceive anything other than that style of OOP
Anonymous No.106113488 [Report] >>106137402
>>106112945
The only CL reference I keep going back to is:
https://lispcookbook.github.io/cl-cookbook/
The CLOS chapter is pretty good.
https://lispcookbook.github.io/cl-cookbook/clos.html

What's not obvious is how nice defgeneric/defmethod can be. Most languages don't have generic multimethods, so you're not going to have a feel for how to use this feature. An exception to that is Julia where all methods are generic by default, and this feature is used heavily. If you have enough Julia experience, you can "backport" some of the method dispatch experience to Common Lisp where it works similarly.

Another fun feature of CLOS is its ability to to add method modifiers (before, after, and around) a method.
https://lispcookbook.github.io/cl-cookbook/clos.html#method-qualifiers-before-after-around
This feature exists in other languages under various names like "advice". For example, Elisp has advice-add which is similar.
Anonymous No.106114730 [Report] >>106115338
>>106107974
>https://github.com/minad/jinx
nice ty
Anonymous No.106115338 [Report]
>>106114730
last time i was using jinx on windows, it didn't exactly work in msys2. because the backend, enchant, failed to find dictionaries. don't know about cygwin and wsl, it probably works there.
jinx does have one nice thing over ispell, that's easy bilingual dictionary setup.
Anonymous No.106116981 [Report]
pretty gud
https://clojure.land
https://clojure.org/news/2025/07/28/deref
Anonymous No.106118230 [Report]
>>106102042
>If you have a pointing device that can send high-precision scrolling events, it's super smooth.
What kind of mouse do I need to get high precision smooth scrolling? Would a gaming mouse suffice?
Anonymous No.106118309 [Report]
>>106107875
/usr/bin/ispell

>>106107974
nice but that's not a backend like aspell or hunspell
Anonymous No.106118682 [Report] >>106119020 >>106120187 >>106121103
Thoughts on https://github.com/moderninterpreters/markup ?
Anonymous No.106119020 [Report]
>>106118682
- It's clever.
- I was a bit worried about editor support, but it looks like he has that covered (at least for Emacs).
- I personally like the look of sexps, so I'm gonna stick with spinneret or hsx for my CL html needs.
Anonymous No.106120187 [Report] >>106120264 >>106121052
>>106118682
Why would you want to use XML closing tags mental illness instead of (h1 ,(prog x) (em "world") "!")? Perhaps with reading macros to get rid of string quotations marks.
Anonymous No.106120264 [Report]
>>106120187
If you're working with a non-Lisp front end designer person, I could see it being useful. (Maybe)
Anonymous No.106120274 [Report] >>106120285
If you're in the mood for a retro font...
https://github.com/unjordy/LispM-Font
Anonymous No.106120285 [Report] >>106121145
>>106120274
Unfortunately, it doesn't render some unicode punctuation very well.
Anonymous No.106121052 [Report]
>>106120187
https://github.com/moderninterpreters/markup?tab=readme-ov-file#motivation
Anonymous No.106121103 [Report] >>106121579
>>106118682
>,(progn x)
why not just ,x?
Anonymous No.106121145 [Report]
>>106120285
gnu unifont
Anonymous No.106121579 [Report]
>>106121103
Great question
Anonymous No.106122985 [Report] >>106123082
https://funcall.blogspot.com/2025/07/pseudo.html
Anonymous No.106123082 [Report] >>106124345
>>106122985
That's silly, just have an LLM generate code and use that code. Too much magic.
Anonymous No.106124345 [Report] >>106128080
>>106123082
>missing the point
git gud anon
Anonymous No.106124831 [Report] >>106128801
Every time I try new editor I notice how smooth the ui compared to Emacs, so I thought I could try to write something to replace the gtk ui and spent a day reading Emacs src/
I don't want to write new ui anymore and I think I should use to another editor
I will check out lem
thank you for reading my blog
Anonymous No.106125384 [Report] >>106125761 >>106126229 >>106126379
ELISP> (pp-to-string (lambda () 42))
"#[nil (42) (t)]
"

ELISP> (funcall #[nil (42) (t)])
42
(#o52, #x2a, ?*)

I accidentally discovered an alternative way to define lambdas in Elisp, but that does the final (t) mean?
Anonymous No.106125667 [Report] >>106126040
How the fuck do you use eglot, pylsp and python venvs?

I do not care about pyenv, venv suits me fine.
Anonymous No.106125761 [Report] >>106130146
>>106125384
heh, pp
Anonymous No.106126040 [Report] >>106127612
>>106125667
such a pain in the ass. jfc, I will just use etags and a dir local file with
((python-mode . ((eval . (push ".venv/bin" exec-path ))
(eval . (push "VIRTUAL_ENV=.venv/bin" exec-path ))
(python-shell-virtualenv-root . ".venv/bin"))))


eglot is CANCER
Anonymous No.106126229 [Report] >>106130257
>>106125384
>but that does the final (t) mean?
This kinda came up in the last bread (>>106008854) where a lambda has 3 parts (params, body, environment), so t is likely the value of lexical-binding at the time the closure was made or something else related to the local environment
Anonymous No.106126379 [Report] >>106130257
>>106125384
There are 2 more slots they can have as well.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Closure-Objects.html
Anonymous No.106127612 [Report] >>106127897
>>106126040
>eglot is CANCER
werks on my machine
Anonymous No.106127897 [Report]
>>106127612
share your setup?
Anonymous No.106128080 [Report]
>>106124345
What's the point then?
Anonymous No.106128155 [Report] >>106128241
>>105941549
Guise, it didn't even show up in the mcron logs. Was expecting it to run on Friday. Wat do?
Anonymous No.106128241 [Report] >>106128359 >>106128453
>>106128155
learn to unit test
Anonymous No.106128341 [Report] >>106128362
Not wrong, but prone to side effects, specially when so much shit is interconnected in obscure ways. aiming for smaller scope would be more stable or easier to debug.
Anonymous No.106128359 [Report] >>106128530
>>106128241
Teach me, senpai. Onegai. Simply want to run it every other month.
Anonymous No.106128362 [Report]
>>106128341
meant for >>106096320
Anonymous No.106128453 [Report] >>106128486 >>106128507
>>106128241
It’s funny, some languages are based on the assumption that no testing is going to be performed. Rust comes to mind.
Testing is usually 80% of the work, even in lisp.
Anonymous No.106128486 [Report]
>>106128453
>It’s funny, some languages are based on the assumption that no testing is going to be performed.
>Rust comes to mind.
LE what?
Anonymous No.106128507 [Report]
>>106128453
I've written quite a bit of Rust and you absolutely still need to test. Cargo has built-in testing capabilities, and `debug_assert` macros for assertions in debug releases
Anonymous No.106128530 [Report]
>>106128359
Not that anon but what lisp is that? Guile?
If that's the case you could lookup srfi-64
Anonymous No.106128790 [Report] >>106128885
I FUCKING LOVE CLOJURE
Anonymous No.106128801 [Report] >>106150345
>>106124831
>Emacs
>UI
wut
Anonymous No.106128873 [Report] >>106128885 >>106134283
I FUCKING LOVE CLOJURE
Anonymous No.106128885 [Report] >>106128964
>>106128790
>>106128873
if i use clojure i will look like this?
Anonymous No.106128964 [Report] >>106129085 >>106129477
>>106128885
Nope
You will look like this
Anonymous No.106129085 [Report] >>106134841
>>106128964
this is me writing Clojure
Anonymous No.106129477 [Report]
>>106128964
Billy Kane Billy Kane lookin' kind of lame. I'm going to put you on point and make them mad so they up and quit the game.

https://www.youtube.com/watch?v=NOYVkOFWcP8
Anonymous No.106130146 [Report] >>106130694
>>106125761
This led me to lookup the pp* functions, and I discovered something nice. I KNEW they changed the pp algorithm in 30, because 29's pp was so much nicer. Today, I found out that there's a pp-28 and pp-29 in addition to regular pp AND when I call pp-to-string, I can pass in an optional pp function if I want the older style. This let me fix a minor bug in my init.el.
Anonymous No.106130257 [Report]
>>106126229
>>106126379
Thanks for helping me understand.
ELISP> (let ((a 1) (b 2)) (lambda (c) (+ a b c)))
#f(lambda (c) [(b 2) (a 1)] (+ a b c))

ELISP> (setq fn *)
#f(lambda (c) [(b 2) (a 1)] (+ a b c))

ELISP> (pp-to-string fn)
"#[(c) ((+ a b c)) ((b . 2) (a . 1))]
"
Anonymous No.106130694 [Report] >>106131902
>>106130146
he's the old pp enjoyer
Anonymous No.106131902 [Report] >>106133051 >>106136362
>>106130694
Old pp is long and aesthetic.
New pp is short and fat.
Anonymous No.106133051 [Report]
>>106131902
Kek'd
Anonymous No.106134254 [Report] >>106134817
>A minimal web framework for CHICKEN Scheme, inspired by Sinatra.
https://github.com/rolandoam/schematra
Anonymous No.106134283 [Report] >>106137395 >>106138056
>>106128873
Too bad it’s a JVM thing.
Too bad Oracle is re-propritarizing it.
Anonymous No.106134817 [Report]
>>106134254
Is it possible to use this with another Scheme (like Guile)?
Anonymous No.106134841 [Report] >>106138035
>>106129085
He's smoking a filter
Anonymous No.106135140 [Report] >>106135973 >>106137411 >>106141327 >>106142381
__ Why vend? __

Dependency management in Common Lisp has traditionally centred around [[https://www.quicklisp.org/beta/][Quicklisp]]. A desire for access to more rapid package updates spawned [[https://ultralisp.org/][Ultralisp]]. The need for version pinning and isolation birthed [[https://github.com/fukamachi/qlot][Qlot]]. The want for a better distribution system brought us [[https://github.com/ocicl/ocicl][ocicl]].

But, could there be a simpler paradigm than just /downloading the code and putting it right there/ ?

With =vend= :

- We need not perform bespoke installation scripts to get started.
- We need not wait for Quicklisp to update.
- We need not relegate all our systems to =~/common-lisp/= .
- We need not worry about where ASDF is looking for systems.
- We need not fret over tools performing strange internal overrides.
- We need not manage extra config files or lockfiles.

Plus, =vend= is actually an external tool with extra commands to help you inspect and manage your dependencies.

https://github.com/fosskers/vend
Anonymous No.106135973 [Report] >>106136015
>>106135140
Nice! Someone else posted another manager the other day. Cochlea? Cocli? I don't recall.
Anonymous No.106136015 [Report]
>>106135973
That was someone else. I liked that one too.
https://github.com/ocicl/ocicl
I'm not sure which I like better, but I think both are an improvement over the status quo.
Anonymous No.106136254 [Report] >>106136299
- Emacs comes with color.el which provides many functions for working with colors.
- One such function is color-rgb-to-hex.
- However, a complementary color-hex-to-rgb did not exist, so I tried writing one.
(defun color-hex-to-rgb (color)
"Transform a hex encoded COLOR to individual RGB components."
(let* ((_ (string-match (rx "#"
(group (= 2 hex-digit))
(group (= 2 hex-digit))
(group (= 2 hex-digit)))
color))
(r (cl-parse-integer (match-string 1 color) :radix 16))
(g (cl-parse-integer (match-string 2 color) :radix 16))
(b (cl-parse-integer (match-string 3 color) :radix 16)))
(mapcar (lambda (n) (/ n 255.0)) `(,r ,g ,b))))

Here's how it works now.
(color-rgb-to-hex 0.5 0.5 0.5 2)
;; "#7f7f7f"
(color-hex-to-rgb "#7f7f7f")
;; (0.4980392156862745 0.4980392156862745 0.4980392156862745)

- I feel like I should make color-hex-to-rgb not hard-code 2 digits per R G B, but I'm unsure how.
- How should that be handled?
Anonymous No.106136299 [Report]
>>106136254
I also don't like that 0.5 turned into 0.498 in the round trip, but I'm not sure what I can do about that.
Anonymous No.106136362 [Report] >>106136501
>>106131902
What theme is this?
Anonymous No.106136501 [Report] >>106136579 >>106137341
>>106136362
gotham
https://depp.brause.cc/gotham-theme/
I've tweaked it a bit though.
(setq my/theme-tweaks
`((gotham
. ,(lambda ()
(my/fringe)
(my/tab-bar-auto :percent 69.0)
(my/org-faces)
(ctsf 'gotham
'(org-block
(:background "#10161c" :inherit unspecified)))
(my/shr-faces)
(my/info-faces)))
))

- I think it provides the foundation for a really good dark theme, but like many older themes, it's missing customization for a few faces like tab-bar-* and fringe.
- Over the past few days, I've come up with a system for customizing themes in a localized way.
- I used to use set-face-attribute to implement little theme tweaks, but the changes made that way are too global and can bleed into other themes which I don't like.
Anonymous No.106136579 [Report] >>106137341 >>106139852
>>106136501
I posted about this in more detail over in the Elisp thread on Lain. It's more code than I'm code than I'm comfortable posting here, and syntax highlighting is better there.
Anonymous No.106137341 [Report] >>106137399
>>106136579
>>106136501
nta.
nice, very nice, anon. i'll even do you a favor and never-ever post on that nice, juicy altchan you've mentioned. and thank you for the ctrf in particular, this may be something i'll take for myself.
Anonymous No.106137378 [Report]
>>106112945
>hey guys, where can i find a good tutorial or something for CLOS? I always read people glazing it but i don't get it lol maybe i've been too indian'd by python that now i can't conceive anything other than that style of OOP

Practicel Common Lisp covers it.
Anonymous No.106137395 [Report] >>106141397
>>106134283
>Too bad Oracle is re-propritarizing it.

You mean the JVM? Or Clojure, specifically?
Anonymous No.106137399 [Report]
>>106137341
One thing I forgot to mention is that you can run ctsf as much as you want to setup face attributes, but they won't take effect until you do:
(enable-theme 'gotham) ; or whatever theme you were modifying

- You can use ctsf in the same spirit as set-face-attribute.
- Think of it as a safer alternative that keeps the changes theme-specific.
- custom-theme-set-faces (which ctsf wraps) is the same function that actual themes use for face setup, so you're really modifying the actual theme this way.
Anonymous No.106137402 [Report] >>106137603
>>106112945
>>106113488
the Lisp cookbook basically covers some of Keene's book so that would be a more substantial reference
The Art of the Metaobject Protocol is a good book to really get into what CLOS does at a deeper level
Anonymous No.106137411 [Report]
>>106135140
>But, could there be a simpler paradigm than just /downloading the code and putting it right there/ ?

Sounds good to me.

Either this or quicklisp. Qlot, as most fukamachi software, is a pain to use.
Anonymous No.106137445 [Report] >>106137488 >>106140874
>LISP was literally originally intended as *the* AI programming language
I wish this would come back and no more gay ass neural nets
Anonymous No.106137488 [Report]
>>106137445
It was used in expert systems which are just not a good idea. There are far too many implicit rules we know and it's too hard to explicitly codify intuition and contextual knowledge which makes them untenable. Especially considering how good things like convolutional neural networks are at e.g. diagnosing cancer, there is no reason to expect neural networks to ever go away.
Anonymous No.106137603 [Report] >>106137632
>>106137402
>Keene's book
This one?
https://doc.lagout.org/programmation/Lisp/Object-Oriented%20Programming%20in%20Common%20Lisp_%20A%20Programmer%27s%20Guide%20to%20CLOS%20%5BKeene%201989-01-11%5D.pdf
Anonymous No.106137632 [Report] >>106145198
>>106137603
Yeah, you can tell because the author's last name is Keene and it's a book about the topic we were discussing.
Anonymous No.106138035 [Report]
>>106134841
Anonymous No.106138056 [Report] >>106138090 >>106138090
>>106134283
Clojure also runs on Javascript
there is a incomplate C# variant
also Jank is a C++/LLVM variant that is in the works
I would like to see a Go variant too
Anonymous No.106138090 [Report] >>106142800
>>106138056
>Clojure also runs on Javascript

That's not the full Clojure language.

>>106138056
>Jank is a C++/LLVM variant that is in the works

1. Not production quality

2. That would mean dealing with the cancer that is LLVM.

You're stuck in the JVM. Meanwhile Common Lisp compiles down to native code for several different CPU architectures.
Anonymous No.106138171 [Report]
Sat, Aug. 9th, 2025, 13:00 UTC
https://clojureverse.org/t/macroexpand-2-connecting-clojure-data-practitioners/11485
Anonymous No.106139852 [Report] >>106143200 >>106143283
>>106136579
I thought lain was dead
Anonymous No.106140666 [Report]
https://sachachua.com/blog/2025/08/2025-08-04-emacs-news/
Anonymous No.106140874 [Report]
>>106137445
At least for programs and other formal stuff symbolic AI will win in the end
Anonymous No.106141327 [Report]
>>106135140
Ah, yet another one
Anonymous No.106141397 [Report] >>106141530 >>106148968 >>106149015
>>106137395
The JVM. Everybody that was heavily invested in it (e.g. IBM) from the Sun days has been trying to get off it now for a decade.
The failure of the Sun Pico processor that supposedly ran JVM natively back in the 90s was quite telling. Similar to lisp machines’ hardware.
Java has always been a cpu/memory hog and they were able to turn that into hardware sales for a while, but they’ve finally squeezed the last drops out of that.
Anonymous No.106141530 [Report]
>>106141397
source?
Anonymous No.106141698 [Report] >>106141845
I spent the last three days trying to understand why SDDM wouldn't work on Guix, I even wrote a long ass post saying how much of a failure retarded faggot I am for being unable to change display managers. Turns out it's either a linux-libre or VM issue because it worked first try on my laptop.
I think I even got rate limited for a while because I was downloading shit at 16kbps tops (I got mad and kept nuking the VM just in case after some time).
Anonymous No.106141845 [Report]
>>106141698
>I think I even got rate limited for a while because I was downloading shit at 16kbps tops
idk these past few days i've been having some trouble reaching the guix servers. i wonder if it's related to this
https://www.fsf.org/bulletin/2025/spring/defending-savannah-from-ddos-attacks
Anonymous No.106142381 [Report] >>106142830 >>106142996
>>106135140
>https://github.com/fosskers/vend/issues/16
Why is no one considering a sexp configuration format?
Anonymous No.106142800 [Report]
>>106138090
>That's not the full Clojure language.
ClojureScript implements enough to do this.
https://wizardmasters.io/
https://github.com/ertugrulcetin/wizard-masters
It's far more capable than you give it credit for.
Anonymous No.106142830 [Report] >>106142973
>>106142381
Tell him.
Anonymous No.106142973 [Report] >>106143035
>>106142830
I'm sure there's a reason it hasn't been brought up, I don't want to sound like a brainlet
Anonymous No.106142996 [Report] >>106143286
>>106142381
Sounds like, literally, retardation. That’s why.
Anonymous No.106143035 [Report] >>106143114 >>106143286
>>106142973
nigga just bring it up
even if you did not forsee something, you will only learn in the process
it's not like they are going to be "AHHHHHHH A BRAINLET, GET THE FUCKING M240 AND HUNT THIS MOTHERFUCKER DOWN!!!"
Anonymous No.106143114 [Report] >>106143173
>>106143035
More like, “oh, you smart. You make us go. You help us and give us code”
> comes to your house, abducts you and locks you in a basement with a keyboard, a beige tower and a crt monitor
Anonymous No.106143173 [Report] >>106143286
>>106143114
>comes to your house, abducts you
I would magdump them with 5.56 NATO
I code in Lisp and defend with blicks
Anonymous No.106143200 [Report]
>>106139852
It's very slow, but the flip side of that is that I don't have to worry about threads falling off the end of the catalog. If I come up with something memorable, I sometimes post both here and there.
Anonymous No.106143283 [Report]
>>106139852
Not so much dead as undead. I monitor like 5 threads and they get a couple posts a month all together, it's still shambling along.
Anonymous No.106143286 [Report] >>106143534
>>106142996
Oh
>>106143035
>it's not like they are going to be
How do YOU know?
>>106143173
>5.56 NATO
For me it's 7.62x39
Anonymous No.106143329 [Report]
Right now you can't use a substitute for the full Linux kernel on Guix because there are none available for the latest version?
https://cuirass.nonguix.org/search?query=linux
And the only way to use a substitute would be to pin it to the latest one built?
Anonymous No.106143534 [Report] >>106143583
>>106143286
>How do YOU know?
Why do you care?
Fuck anyone who disrespects you.
Anonymous No.106143583 [Report]
>>106143534
I can't fuck THAT many people, anon. Anyways, I don't have a throwaway github account so I'm not posting potentially retarded questions under my real name. That's all there is to it.
Anonymous No.106145053 [Report] >>106145359
Hell is other people's web stack.
Anonymous No.106145198 [Report]
>>106137632
kek
Anonymous No.106145359 [Report] >>106145502
>>106145053
What's yours?
Anonymous No.106145502 [Report] >>106152510
>>106145359
I have a few.

static sites:
JSON -> perl scripts -> markdown -> rentry.org
JSON -> perl scripts -> markdown -> pandoc -> pgs.sh
(upcoming) Org -> Elisp -> pgs.sh

dynamic sites:
SQLite -> perl scripts
SQLite -> CL (mito, spinneret, hunchentoot, hunchensocket, htmx)

Some people would think hunchentoot is kind of a pain, and I wouldn't blame them. It's a bit antiquated. The other stuff is too small to be hellish.
Anonymous No.106145828 [Report] >>106147248
Sacha accidentally reposted an Emacs News post from 6 years ago.
https://sachachua.com/blog/2025/07/2019-08-12-emacs-news/
Anonymous No.106146951 [Report]
>Lame ass languages like JavaShit and Poothon dominate while infinite computational universes of LISP remain unexplored
We live in a fallen world
Anonymous No.106147248 [Report] >>106147285
>>106145828
women amirite
Anonymous No.106147285 [Report]
>>106147248
It's interesting to see what was going on back then, and to see what's changed and what's stayed the same. Not all accidents are bad.
Anonymous No.106148024 [Report]
Has anyone ever used Chicken Scheme for something serious? Was going to try and use it for microcontroller stuff but I dunno how viable it is
Anonymous No.106148746 [Report] >>106148998 >>106151119 >>106155631
Smalltalk is as good as lisp.
Anonymous No.106148968 [Report]
>>106141397
Don'f know what are you talking about, OpenJDK is FOSS and you can use any build from a decent list of vendors if yoh don't wanna compile, including Eclipse Temurin. Are you talking about GraalVM?
Anonymous No.106148998 [Report] >>106149403 >>106155700
>>106148746
How exactly is smalltalk implemented anyway?
Like what's the compiler/interpreter doing under the hood?
One of the main reasons I like lisp is I actually know what's going on in there and can understand it.
I'd hope it's some sort of elegant "this is what OOP is supposed to be" code, but I fear it's going to be a java saar nightmare forest.
Anonymous No.106149015 [Report]
>>106141397
your interpretation may be a couple of decades old, JVM hell is forever
Anonymous No.106149403 [Report]
>>106148998
Honestly I don't know. I just started using it and I wanted to talk about smalltalk.
Anonymous No.106149409 [Report] >>106149781
>>106094218 (OP)

You need to add Calva under Clojure... that's the best Clojure extension in the world for VS Code.

https://calva.io/
Anonymous No.106149781 [Report]
>>106149409
I'll try. Jeetbrains' Cursive was completely useless it shat itself for 40 mins and couldn't scan a simple Hello World cljfx app, i ended using the command line and solved it in 3 minutes.
Anonymous No.106150345 [Report] >>106150509 >>106157992
>>106128801
emacs is known for being awfully slow when typing (if you compare to other programs)
Anonymous No.106150509 [Report] >>106150740
>>106150345
I've been there many times. Everytime I've tried lem and other emacs like replacements I come back to emacs after a couple days. I hate that there's so much baggage but at the same time I've used emacs for so long and depend too much on its tools. Maybe if there was a simile to org mode I would make the switch to lem. But thats a completely different can of worms, there must be a way of getting 80% of the way to emacs in lem with 20% of the effort.
Anonymous No.106150740 [Report] >>106153967
>>106150509
I mean it's definitely convenient once you're used to it, I'm not denying that. But sometimes I wonder if I should reevaluate my workflow and implement more specific tools, like using Obsidian for notes and so on.
Emacs is only irreplaceable if you insist on having a single place for a bunch of things, which is quite silly when you think about it, you wouldn't be pissed at your car for not making you coffee.
Anonymous No.106151119 [Report]
>>106148746
Do you use gtoolkit?
https://gtoolkit.com/
Anonymous No.106151475 [Report] >>106151647
Anyone using org export html to publish a blog here?

https://www.gnu.org/software/emacs/manual/html_node/org/HTML-Export.html

https://www.gnu.org/software/emacs/manual/html_node/org/Publishing.html
Anonymous No.106151647 [Report] >>106151710
>>106151475
I tried but due to the nature of org the css is a nightmare.
Anonymous No.106151710 [Report] >>106152161
>>106151647
How so?
Anonymous No.106152116 [Report]
>>106095136
>uiua
I fail to see how a spinning cat can improve the language.
Anonymous No.106152161 [Report]
>>106151710
There is just a ton of CSS rules because org text can be many different things. I ended up looking through the org manual, org-bloggers' css, and the ox elisp code. It was just too much. Here are some of the resources I used then:
https://orgmode.org/manual/CSS-support.html
https://gongzhitaao.org/orgcss/
https://github.com/gongzhitaao/orgcss/tree/master/src/css

I was coming from using org to write latex documents which worked beautifully and I was very disappointed by the complexity of ox-html.
If I were to do it all over I would investigate/make something like this: https://github.com/balddotcat/ox-slimhtml
Anonymous No.106152510 [Report] >>106154012
>>106145502
>2025
>Perl
Anonymous No.106153967 [Report] >>106154398
>>106150740
The reason you come back to it is because your entire OS should work that way. The reason it feels slow/bad is because you're trying to do that with a text editor.
Anonymous No.106154012 [Report]
>>106152510
perl is good. Much better than pretty much anything else you could pick for that job/web shit. Everything else is slower and can't do as much as easily. I miss the days when perl was what everyone suggest you learn first over python (and php for web shit). perl is a much better language when you factor in working with shell scripts and CLI.
Anonymous No.106154398 [Report] >>106154721
>>106153967
nigga, Emacs is single threaded
Anonymous No.106154721 [Report]
>>106154398
Yeah no shit. Doesn't change anything I said.
Anonymous No.106155631 [Report]
>>106148746
it is, it's an excellent environment.
I am actually trying to replicate some of the smalltalk environment inside lisp.
I figure if I can have a mix of lisp and smalltalk, I can have my ideal programming environment.
Anonymous No.106155700 [Report] >>106157937 >>106161671
>>106148998
>One of the main reasons I like lisp is I actually know what's going on in there and can understand it.
Smalltalk is fully introspectable.
Anonymous No.106157374 [Report] >>106162463
Kino
https://www.youtube.com/watch?v=ckOpWQYpKjo
Anonymous No.106157937 [Report]
>>106155700
>Smalltalk is fully introspectable.

Smalltalk is great too. But Lisp is a bit more flexible if you want to do low level stuff or hi-perf stuff. Plus, i prefer CLOS OOP to message-passing OOP.
Anonymous No.106157992 [Report]
>>106150345
> emacs known to be slow
Visual Studio… when they started writing it in .Net was one of the slowest things I’d used. Noticeable typing lag. It reminded me of the Java based Corel Suite before they dropped Java forever in ’97.
Then, some years later, I tried visual studio code. It was absolutely unusably slow. A pull down menu would take over a second to draw each menu item.
This was the same system I used and developed on with emacs on daily, some office dell thing.
I won’t include eclipse in this for obvious reasons.
Yes, these probably run better if I buy a new 64-core threadripper 3d max with 128 Gb of ram, and a 4090 Ti Founder’s edition gaming pc every year, but that’s not what we get at work.
Anonymous No.106158255 [Report] >>106158290 >>106173416
t-thanks anon
Anonymous No.106158290 [Report] >>106158349
>>106158255
Not sure that overkill is something you could ever accuse sexps of, it’s the epitome of minimal, necessary and sufficient,
Anonymous No.106158349 [Report] >>106158498
>>106158290
Agreed, especially in terms of implementation. Reading a sexp list of cons pairs is easier than reading lines and splitting them by a space.
Anonymous No.106158498 [Report] >>106158527
>>106158349
you can't just do eval on a config if it isn't trusted
see Clojure's dedicated EDN format
Anonymous No.106158527 [Report] >>106172201
>>106158498
Why would you eval a config? You just read it
Anonymous No.106158555 [Report]
I just read a few pdfs about the smalltalk interpreter and it's implementations.
I'd say I like a lot of how it works, but I'd change several things borrowing from lisp.
First the whole multi-word operator thing is ridiculous and weird, just go to regular function syntax with parens.
Second I'm no a huge fan of how processes and memory management are handled, there need to be more control and more separation of both to allow for at least the possibility of security or sandboxing.

Biggest feature that puts lisp and all other languages to shame is definitely the focus from the very start of graphics, sound, and UI. Just being able to natively write the entire editor, browser, and renderer directly in the base language without importing any libraries make it Emacs++.
And that's impressive now, let alone when this shit was designed, it's absolutely criminal how shitty the current state of GUIs is when this shit was running a full web browser back in the era of dotmatrix terminals.
Anonymous No.106158672 [Report] >>106158764
What is this menu? How do I invoke it? Where do I read more about it?
Thanks a lot
Anonymous No.106158764 [Report] >>106158783
>>106158672
that's just an LSP thing, it wants to know the project directory so it can scan it
Anonymous No.106158783 [Report]
>>106158764
I think I have kinda figured it out now.
It was giving me problems because I'm just learning how to work with Makefiles, and then, a little later, I was not understanding why was I able to compile my project, but clangd wouldn't find where the .h files were located.
So I started trying out a lot of stuff, like generating compile_commands.json with bear, with no success, and at one point, I tried to move the directory to some other place, and that little menu popped out, I pressed 'i' and clangd managed to find the .h files.

Then I learned that I can do M-x lsp-workspace-folders-remove to remove the top directory where all my projects live, open a project, and that little menu will pop up again.
It seems like a lot of work but at least it's a workaround.

Thanks for replying.
Anonymous No.106159195 [Report] >>106159604 >>106160754
bro why did no one tell me about registers? this shit is good
Anonymous No.106159604 [Report]
>>106159195
Emacs is full of goodies, yes.
Anonymous No.106160754 [Report] >>106161342
>>106159195
>registers
?
Anonymous No.106161342 [Report] >>106172120
>>106160754
Ask emacs.
C-h a register RET
Anonymous No.106161671 [Report]
>>106155700
Does smalltalk have macros? How does metaprogramming work? I assume it has it but i've not found much about the details.
Anonymous No.106162463 [Report]
>>106157374
Soon
Anonymous No.106162800 [Report] >>106163386 >>106163522 >>106163926
what are you guys working on today?
Anonymous No.106163386 [Report]
>>106162800
yeah good morning team, so yesterday I worked on my story, and i'll just be continuing on that today. no blockers.
Anonymous No.106163522 [Report] >>106163578
>>106162800
finishing my auth lib (and, in the process, my other lib that wraps NextJDBC and HoneySQL)
I am in permanent nicotine withdrawal and it SUCKS!
Anonymous No.106163578 [Report] >>106163625
>>106163522
I have an automatic retry mechanism for my serializable transactions (when serialization failures occur)
Anonymous No.106163625 [Report]
>>106163578
as well as my own migration tooling
my database interaction is very weird in that I abuse the fuck out of Postgres schemas to represent database subsets for libs. kind of like microservices but without separate DBs
Anonymous No.106163926 [Report]
>>106162800
also, I was working on this port from my old Elixir code, but got distracted and it is in an unfinished state
this algorithm allows for the encoding of a sequence of numbers in base X to a sequence of numbers in base Y. it makes generic things like base64 or hexadecimal encoding.
Anonymous No.106165751 [Report] >>106165763 >>106166298
New Helix Plugin
https://github.com/Ciflire/helix-discord-rpc
It's more rust than scheme, though.
Anonymous No.106165763 [Report] >>106166298
>>106165751
https://github.com/helix-editor/helix/pull/8675#issuecomment-3161096232
Anonymous No.106166298 [Report] >>106166444 >>106166608
>>106165751
>>106165763
Interesting. I wonder if Helix+Steel will be able to integrate with IRC and Matrix as Emacs does.
Anonymous No.106166444 [Report] >>106168143
>>106166298
I'm sure it'll be possible, but there's a lot of infrastructure that needs to be built out first.
Anonymous No.106166608 [Report]
>>106166298
BTW, my favorite feature of ERC is how it makes Emacs-related text clickable.
- Quoted symbols like `cl-remove-if-not' will go to help.
- (info "(erc) Modules") will open an info page.

I also like that I can leverage all of Emacs' window and frame management to setup windows to various channels. I don't think most terminal irc clients would allow me to do what Emacs lets me do with relative ease.
Anonymous No.106168143 [Report]
>>106166444
Nice trips.
I hope so. Helix+Steel is very promising.
Anonymous No.106169736 [Report] >>106170049
I miss that person who would post with "Scheme!"
Anonymous No.106170049 [Report] >>106170593
>>106169736
He did a good job keeping the thread alive when it was in a lull.
Anonymous No.106170576 [Report] >>106170814 >>106170848 >>106172102 >>106175576
But why?
Anonymous No.106170593 [Report]
>>106170049
I wished I saved the gif he used to continue his legacy
Anonymous No.106170659 [Report] >>106170680 >>106188007
Java!
Anonymous No.106170680 [Report]
>>106170659
holy shit
Anonymous No.106170728 [Report] >>106170740
>>106094218 (OP)
why is emacs this way on Mac

https://xlii.space/eng/emacs-the-macos-bug/
Anonymous No.106170731 [Report]
>>106094218 (OP)
Who’s this cutie in the OP?
Anonymous No.106170740 [Report]
>>106170728
>itoddleros
who cares
Anonymous No.106170814 [Report] >>106170867
>>106170576
>But why?
For fun, but...

../.----./-- .../--- -/../.-././-..
---/..-. -/..../../... .--/---/.-./.-../-..
..-./..-/.-../.-.. ---/..-. .-../.././.../.-.-.-
Anonymous No.106170848 [Report] >>106170867 >>106170912
>>106170576
> .-././.--./.-../-.-- -/--- -/..../../... .--./---/.../- ---/.-.
> -.--/---/..-/.-. --/---/-/...././.-. .--/../.-../.-.. -../../. ../-.
> ...././.-. .../.-../././.--./.-.-.-
I tried to use tesseract to OCR the image, but it failed. I then manually transcribed this. It's really taxing on the right pinky to input morse code.
Anonymous No.106170867 [Report]
>>106170814
>>106170848
Sorry bwos it was the first thing that came to mind...
Anonymous No.106170912 [Report] >>106170924 >>106170928
>>106170848
I need to learn how to use my right pinky when typing. For whatever reason it's the ONLY finger I don't use
Anonymous No.106170924 [Report] >>106170956
>>106170912
How do you hit RET?
Anonymous No.106170928 [Report] >>106170956
>>106170912
I don't think anyone uses it other than hitting enter.
Anonymous No.106170956 [Report]
>>106170924
Slam it with my index finger and exclaim "I'm in"
>>106170928
You're right, I didnt even notice I do use it
Anonymous No.106171822 [Report]
- Emacs daemons should NOT be started as a system service.
- Emacs daemons should be started and stopped as easily as one starts and stops tmux sessions.
- Sometimes, having process isolation is a good way to work around some of Emacs' weaknesses, and this is one way to achieve that.
- When you're sufficiently proficient in managing multiple Emacs daemons, you don't even need tmux anymore, even on servers.
- The only issue is the ergonomics of emacsclient.
- It needs to be wrapped with functions or aliases to make this workflow feel good.
- Adding keybindings to your window manager to call emacsclient in useful ways helps too.
Anonymous No.106172013 [Report] >>106172034
Another Helix plugin has been released.
https://github.com/gerblesh/modeline.hx

This is "modeline" in the vim sense where a magical string at the end of a file can be used to provide buffer-local settings.
# vim:ts=4 ft=py

The Emacs equivalent is called a file variable or a file local variable.
https://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html
;; -*- mode: Lisp; fill-column: 75; comment-column: 50; -*-

This extension supports Emacs-styled file local variables too.
Anonymous No.106172034 [Report]
>>106172013
https://github.com/helix-editor/helix/pull/8675#issuecomment-3162576669
This one is pure Scheme, but it currently requires the author's nonstandard fork of Helix to run (so like a fork of a fork).
Anonymous No.106172102 [Report] >>106172118
>>106170576
| <r> | <l> | <r> | <l> |
| Letter | Morse | Letter | Morse |
|--------+-------+--------+--------|
| A | .- | U | ..- |
| B | -... | V | ...- |
| C | -.-. | W | .-- |
| D | -.. | X | -..- |
| E | . | Y | -.-- |
| F | ..-. | Z | --.. |
| G | --. | 0 | ----- |
| H | .... | 1 | .---- |
| I | .. | 2 | ..--- |
| J | .--- | 3 | ...-- |
| K | -.- | 4 | ....- |
| L | .-.. | 5 | ..... |
| M | -- | 6 | -.... |
| N | -. | 7 | --... |
| O | --- | 8 | ---.. |
| P | .--. | 9 | ----. |
| Q | --.- | , | --..-- |
| R | .-. | . | .-.-.- |
| S | ... | ? | ..--.. |
| T | - | | nil |
|--------+-------+--------+--------|
#+TBLFM: $2='(cdr (assoc (downcase (substring $1)) morse-code))
#+TBLFM: $4='(cdr (assoc (downcase (substring $3)) morse-code))
Anonymous No.106172118 [Report]
>>106172102
credit: https://www.reddit.com/r/emacs/comments/fa5wwd/comment/fiwryfa/

(I just added a missing closing paren and made column alignment explicit.)
Anonymous No.106172120 [Report]
>>106161342
Wait until he learns about mark and point
Anonymous No.106172192 [Report] >>106172770
Is helix's aim to replace Emacs? So we'll have emacs, lem and helix to pick in the future?
Anonymous No.106172201 [Report]
>>106158527
> eval a config
In the 90s, what we now call “json” was banned through firewalls because intellectual midgets were using the fast javascript parser written in C to read data with it. It had the side effect of executing any code in there unless it was time consumingly sanitized in JS thus defeating the speed of native evaluation.

It seems that, as a minimum, —and since they astonishingly deviated from XML anyway—for CSS they could have used sexps.

However, I’m not sure I’d want web troglodytes’ input on the next scheme standard after the R6 debacle that necessitated calling Sussman back in (out if retirement) to re-educate the current generation.
Anonymous No.106172770 [Report]
>>106172192
Helix has attracted more former vim users than anyone else. I've said this before, but an unconfigured helix feels like well-configured vim. It doesn't "feel" like Emacs at all. Even with the addition of Scheme as an extension language, I'm a little concerned about their documentation. I would love for them to take all the things that Emacs and Elisp did right and incorporate them into their Scheme-based extension system. It's not quite there, and I don't know to what extent they want to make helix self-documenting in the way Emacs is.
Anonymous No.106173416 [Report] >>106174009
>>106158255
What is this? A forum?
Anonymous No.106174009 [Report]
>>106173416
Look at the screenshot.
It has so many clues.
Think.
Anonymous No.106174106 [Report]
I think it may be some sort of hub.. For git projects.
Anonymous No.106175576 [Report]
>>106170576
Why not? ( ̄︶ ̄)
Anonymous No.106176376 [Report] >>106176932
>maybe we should keep 4chan links to nil... also it doesn't add anything to this conversation other than some bad language and attitudes....
He's right, quit shitting up that isuue
Anonymous No.106176431 [Report] >>106176723
>And yes, if 4chan wants to participate, they can do so directly in here themselves.
This is NOT an invitation for an attack btw. Stay respectful to fellow Lispers, even if they also use Rust and look like pic related
Anonymous No.106176723 [Report]
>>106176431
gigachad aryan lisper
Anonymous No.106176932 [Report] >>106176972
>>106176376
>no not le heckin 4chan in my github issue reee
ꜱoydev plebbitors are such faggots
Anonymous No.106176972 [Report] >>106177003
>>106176932
>he says in his echo chamber
Attach your real name to that, pussy ass faggot
Anonymous No.106177003 [Report]
>>106176972
go back to >>>/r/eddit nigger
Anonymous No.106177083 [Report]
Another day with lisp, another day of happiness.
Anonymous No.106177100 [Report] >>106177173
>client hiring me to build a custom CMS
>they dont have technical staff so I basically have free reign over tech choices
I'm going to propose writing it in Common Lisp. Fun + vendor lock in? Yes please
Anonymous No.106177173 [Report] >>106177309
>>106177100
good luck. I would give serious consideration to Clojure instead, simply due to the astronomical amount of tooling that exists on the JVM.
Anonymous No.106177223 [Report] >>106177309 >>106177486 >>106177768 >>106177796
I want to do something like:

((MyFunc 1 2 3) 1 2 3)


Where before the outer form is evaluated, MyFunc is called and returns another function like MyFunc2, so then this form is evaluated as

(MyFunc2 1 2 3)


I know it's trivial to do this with macros and funcall, but I want to be able to write code exactly like this and it works at runtime. Are there any lisps or schemes that allow this out of the box? I'm explicitly interested in not having to do a song and dance, and just having this syntax at my fingertips as a default evaluation capability. Particularly in a compiled sexpr lang where this mechanism is blessed and can be heavily optimized by the compiler.
Anonymous No.106177309 [Report] >>106177442 >>106177733
>>106177173
If Clojure had reader macros and the tooling wasn't so god-awful, I would be learning it seriously. But until then, Common Lisp will be my go-to Lisp.
>>106177223
I thought all Schemes/Lisp-1s can do that?
Anonymous No.106177339 [Report]
So, which one of you made a Lisp dedicated to GPU programming?
Anonymous No.106177442 [Report]
>>106177309
guess I'll finally try scheme then
Anonymous No.106177486 [Report]
>>106177223
this is literally default scheme behavior
screenshot is Clojure
Anonymous No.106177733 [Report] >>106179193 >>106191778
>>106177309
what is terrible about Clojure's tooling? the Java CLI arguments?
CL's Quicklisp doesn't even have version numbers bro
Anonymous No.106177768 [Report]
>>106177223
this is called a combinator, combining functions.
you can have myfunc return a partially evaluated function, or a lambda, then the return will evaluate the next parameter.
Anonymous No.106177796 [Report] >>106177895
>>106177223
what's the usecase for this behavior, ironically speaking?
Anonymous No.106177895 [Report]
>>106177796
my db migrations are just maps of published time to maps with up/down keys, referencing values that are functions
Anonymous No.106179193 [Report] >>106191215
>>106177733
>the Java CLI arguments
This and lack of reader macros were definitely some of the pain points I had when I tried it out, I don't quite recall the others. But it felt like it just takes way too long to get a project going.
My ideal language is somewhere between Common Lisp and Clojure, honestly.
Anonymous No.106180036 [Report] >>106180897
Are lisp 3d game engines actually viable? Which parts of it would be the hardest to implement? Something like networking?
I just found that there are some games/engines written fully in lisp like Jak and Daxter and Ratchet & Clank for the PS2 and I found this project on github https://github.com/Shirakumo/trial
I don't know much about lisp, but I've always seen it as a language with a lot of overhead but then I've found out that some dialects like SBCL (or GOAL/GOOL for the PS2 games) seem to be quite performant.
Anonymous No.106180763 [Report] >>106180846 >>106181609 >>106187002 >>106191794
Howdy frens, I'm completely ignorant about Lisp. I don't know how to code, except for basic Python scripts. But I'd like to start learning a programming language, both for intellectual exercise and to work on projects.

I find Lisp very interesting, but I'm not sure where to start. I think starting with Scheme would be easier, but I also think Clojure is both more powerful and more widely used in real-world contexts, both professional and personal, and its interoperability with Java gives it more possibilities, I think.

Would you advise starting with Scheme and then maybe moving on to Clojure, or jumping straight into Clojure ?
Anonymous No.106180846 [Report] >>106180960 >>106181771
>>106180763
Clojure has horrible documentation, especially for beginners. it's written in a manner that expect you to know what you are doing. I think Clojure is a great language, but if you are a noob, I would start with Elixir. Elixir's documentation is wonderful, and if you learn it, much of the skills will transfer over to Clojure.
Anonymous No.106180897 [Report]
>>106180036
>Are lisp 3d game engines actually viable?
>I just found that there are some games/engines written fully in lisp like Jak and Daxter and Ratchet & Clank for the PS2
>I don't know much about lisp, but I've always seen it as a language with a lot of overhead but then I've found out that some dialects like SBCL (or GOAL/GOOL for the PS2 games) seem to be quite performant.
Naughty Dog also used lisp for TLOU on PS3 so it seems viable
Anonymous No.106180960 [Report]
>>106180846
I'm looking into Elixir, and yeh they have the same philosophy and paradigm from what I can see. It looks interesting. As a total programming noob, I'll look into Elixir and try to learn it. Thank you. And then I'll look into Clojure
Anonymous No.106181011 [Report] >>106181163 >>106181965
I just found out one of the main Guile devs has been working on a new garbage collection library
https://wingolog.org/archives/2025/05/15/guile-on-whippet-waypoint-goodbye-bdw-gc
Anonymous No.106181163 [Report] >>106181266
>>106181011
Why is there a need for a new one?
Anonymous No.106181266 [Report]
>>106181163
Probably so you can choose between different collectors and not just BDW
https://github.com/wingo/whippet/blob/main/doc/collectors.md
Anonymous No.106181609 [Report]
>>106180763
sex with silence suzuka
Anonymous No.106181771 [Report] >>106181808 >>106181856 >>106191801
>>106180846
I'm planning on learning Lisp by doing SICP (I'm used to Emacs already), is Scheme not a good first language? Should I learn Elixir before doing SICP?
Anonymous No.106181808 [Report] >>106182444
>>106181771
no, Scheme is fine. SICP will walk you through it. it is Clojure in particular that is not easy to learn.
Anonymous No.106181856 [Report]
>>106181771
>is Scheme not a good first language?
It was the introductory language of choice for mit students since the 80s, you're good
Anonymous No.106181887 [Report] >>106181963 >>106182071
How come it's so easy to break pdf-info? I love it because it's the best pdf viewer but I swear it's so fragile. Can't even set custom key bindings with :bind without it throwing a ton of symbol errors.
Anonymous No.106181963 [Report] >>106182128
>>106181887
you mean pdf-view? and what are you trying to do exactly?
Anonymous No.106181965 [Report]
>>106181011
> new garbage collector
There’s literally thousands of new garbage collectors for java and other things, it’s a common master’s thesis topic and undergrad course assignment.

It’s the equivalent announcement that someone write a new “todo list application” in python/tk
Anonymous No.106182071 [Report] >>106182128 >>106182401 >>106183755
>>106181887
>Can't even set custom key bindings with :bind without it throwing a ton of symbol errors.
Don't know if this helps but apparently :bind defers loading until you type one of the bindings, adding :demand loads it first
Anonymous No.106182128 [Report] >>106182344 >>106182399 >>106182401
>>106182071
>>106181963
I already fixed it with (define-key). I just hate that pdf-tools is so fragile. Update poppler? Have to manually go into ~/.emacs.d/, delete everything under /pdf-tools<date>/ then nuke the directory. Then reload emacs. Otherwise, symbol errors. Try to configure it as stated in use-package part of the docs? symbol errors and pdfs no longer render. Look at it funny? Symbol errors.

It's the most troublesome part of my init for sure.
Anonymous No.106182344 [Report] >>106182401 >>106182467
>>106182128
Yeah it must initialize itself in an unusual way compared to other packages (so symbols aren't exported yet), gj on fixing it tho
Anonymous No.106182399 [Report] >>106182467
>>106182128
i have this problem when pdf tools just demand recompilation of epdinfo server because i've compiled emacs myself outside of msys2 (no wsl2 setup). and it doesn't recognize the server it compiles at all. and no, setting a var i no longer remember which's responsible for this doesn't work.
meanwhile nov.el, which also deals with a fancy archive with text and images, isn't nearly this finicky.
pdf is a nigger format.
Anonymous No.106182401 [Report]
>>106182071
>>106182128
Also I'm not sure if this is why but when installing/using pdf-tools with use-package you have to do :config then (pdf-tools-init) or whatever they call it. This makes doing things normally like with anything else through the expected syntax a huge pain in the ass.

I tried to do the exact same bindings with nov.el and it worked just fine as described in the docs using :bind (:map (something). All I wanted was to make hjkl work in modes where all I'm doing was reading documented the way it works pretty much everywhere else in my work flow. I don't use vim style bindings beyond hjkl for scrolling in documents I won't edit/type in. I know it's kind of retarded but it's how I run my web browser so I wanted it to carry over so I didn't have to reach for ctrl+n/p or the arrow keys. I don't care about the emacs style bindings when I am typing because I hate reaching for ESC and switching between modes too.

>>106182344
It's a big piece of shit. If there was any better pdf viewer I would use it instead. But they're all massive piles of shit (I've tried them all). At least emacs is tolerable and I can use it with org-mode.

To add insult to injury I'm on an OS that doesn't use a GNU userland. So I have to unfuck a bunch of other stuff to make it work correctly with BSD style userland. At least it isn't Windows or Mac those are much much worse. But at this point half my init.el is just setting things based on what platform I'm on.

I really wish I could extend mg instead. I love emacs but it has a lot of legacy cruft and stuff I'll never use inside. I often worry about it being a massive exploit waiting to happen into the rest of my system. But I've been married to it for so long now I don't see myself switching to anything else ever.
Anonymous No.106182444 [Report] >>106182527 >>106182839 >>106191830
>>106181808
So Clojure is like the weird one in the family ?
Anonymous No.106182467 [Report] >>106182623 >>106182746
>>106182399
>>106182344
Long shot; Any of you happen to know how to use pdf-tools in dark reader mode without it ruining the embedded images? Seems like the author is totally retarded/lazy because it shouldn't be messing with the images in the first place. I understand pdf is a bastard file format but this must be possible to do, right?
Anonymous No.106182527 [Report] >>106182736
>>106182444
Clojure is technically adopted; kinda but not really part of the family.
Anonymous No.106182623 [Report]
>>106182467
I don't use pdf-tools but if you just want to render pdfs (without writing to storage like their github says) you could write an elisp wrapper around
mutool draw -w [width] -o /tmp/tmp.png [file.pdf] [page]
and track the current page in a buffer-local variable. Adding -I inverts the colors, or you can add tints/adjust page gamma with -G to your liking for dark mode
Anonymous No.106182736 [Report] >>106182965 >>106183599
>>106182527
What makes Clojure so hard to learn ?
And adopted from where ?
Anonymous No.106182746 [Report]
>>106182467
a. there's now noverify install command. it wasn't there when i was last using pdf tools on windows.
b. no, i don't know. there's an option to use imagemagick for rendering, but i highly doubt it'll change anything; and pdf-view-midnight-invert. i can't exactly check myself its effect as i have no pds atm on my linux box.
Anonymous No.106182839 [Report] >>106182934 >>106182965 >>106183873 >>106191851
>>106182444
no, Clojure is a proper Lisp-1 (like Scheme) that runs on the Java Virtual Machine (also in Javascript via Clojurescript, as well as a form of shell scripting with Babashka). it's just annoying to learn for most programmers because
(1) it's a Lisp (which confuses people used to Python or C style syntaxes),
(2) it's a functional language with immutable data structures (this will trip up programmers used to being able to mutate whatever, whenever---I remember it being annoying as fuck for my first week learning Elixir),
(3) it requires you to know Java as well (for example, your date/time handling will be done using Java's facilities for it),
(4) it proposes many abstractions over its data structures (for example, the sequence abstraction allows for iteration over any collection, the association abstraction allows for association/dissociation (applies to hash maps, sorted maps, and vectors, where your "key" is the index), and the abstraction that supports "conj"), making identification of what exactly you are doing difficult to grasp initially,
(5) and its documentation is written by people that have been programming for a very long time, and do not care to explain things in a way that is useful for noobs.
it's an excellent language. it has software transactional memory. it has the ability to "watch" values for when they change. you can toy around with metadata on objects. it is the most terse language I have come across, and allows you to trivially tear apart/assemble data structures with zero ceremony. it has the ability to have maps where keys are namespaced, which is something that I have never seen done before. it provides trivial access to the entire Java ecosystem, which is gargantuan.
there's just a lot to learn, and not much documentation to help you do so.
Anonymous No.106182934 [Report]
>>106182839
Thank you for taking the time to explain. It really does sound fascinating and powerful
Anonymous No.106182965 [Report]
>>106182736
>>106182839
Even as a somewhat experienced lisp programmer Clojure threw me for a loop for a while. There were things I wanted to do, like basic shit, and I couldn't find any documentation anywhere, no libraries, not even any forum posts. And then I figured out it's part of the Java standard library and everyone just expected you to automatically know that and just use the java interop. Also debugging was hell since it can drop down into the java debugger.

Basically you need to know Java to actually use it beyond a toy level, and so most of your time is actually going to be spent browsing java references and basically programming in java using lisp syntax.

But you also need to know lisp to understand all the abstract syntax and macros and shit they throw around. And there's not traditionally much overlap between the type of person who's enthusiastic about lisp and enterprise java.
Anonymous No.106183599 [Report]
>>106182736
>And adopted from where ?
The JVM, ie. Hell. It's hellspawn disguising as a Lisp.
Anonymous No.106183755 [Report]
>>106182071
I've had to use `:demand t` a few times. If you ever feel like the :config block isn't running, it's probably this.
https://github.com/jwiegley/use-package/issues/505
Anonymous No.106183873 [Report] >>106185508
>>106182839
On the documentation front, I always thought:
- clojuredocs did a good job on documenting the standard library.
- https://clojuredocs.org/
- clojars did a good job of presenting docs for 3rd party libraries in a consistent way.
- https://clojars.org/ -- Every library has cljdocs link, so you can always find docs for a library in a consistent and sane way.

I think they did a great job as a community on the documentation front.
Anonymous No.106185508 [Report] >>106185617
>>106183873
Agreed, Clojure is obviously a tool for the JVM world, expecting people to know Java is obvious and introducing Java would be redundant and extremely complex to maintain.
There are loads of Java books and references for people to use for this purpose. so, it's complete on its own domain, which is what matters.
Anonymous No.106185617 [Report]
>>106185508
You make no sense.
Anonymous No.106187002 [Report]
>>106180763
git gud ( ̄▽ ̄)b
https://tryclojure.org
https://clojure-doc.org/articles/tutorials/introduction/
Anonymous No.106188007 [Report]
>>106170659
good morning jvm sir
http://xahlee.info/java-a-day/java.html
Anonymous No.106189012 [Report] >>106189260
This is Janet -> WASM doing web audio.
https://lisp.trane.studio/
Alt-Enter will start the demo.
# Hello
# Trane is a music playground
# It's written in Janet, a lisp-like language

# To execute the code below, press Alt+Enter. (+Enter on Mac)

(chain
(sample :hello-sample :url "samples/Cmin 7th 3.wav" :pitch :c3)
#(biquad :hello-filter :filter_type "lowpass")
:out
)

(live_loop :player
(play (pick 12 24 36) :hello-sample :dur 64)
#(target :hello-filter :frequency (rand 50 10000) 10)
(sleep 6)
)
# All those samples playing at once might cause some clipping. Try to adjust the level with the gain knob on the right.
# try uncommenting both the lines above.

# Have a look at the about page for more info: https://lisp.trane.studio/about.html
Anonymous No.106189133 [Report] >>106189557
How many of you would be interested in a semi-regular Lisp meetup event (not organised through 4chan)? Please include your country.
Anonymous No.106189260 [Report] >>106191214
>>106189012
Does Janet implement a condition system or OOP similar to common lisp?
Anonymous No.106189557 [Report]
>>106189133
I literally do not interact with other humans
Anonymous No.106190224 [Report]
>>106106181
https://github.com/mhayashi1120/Emacs-langtool
I already had the service running for LibreOffice.
Anonymous No.106191214 [Report] >>106191492
>>106189260
>condition system
https://janet-lang.org/docs/fibers/error_handling.html
exception system built on top of fibers

>OOP
https://janet-lang.org/docs/object_oriented.html
Self-styled prototypes
Anonymous No.106191215 [Report]
>>106179193
>Common Lisp and Clojure
https://github.com/ruricolist/cloture
Anonymous No.106191492 [Report]
>>106191214
Very cute. Neat little toy language.
Anonymous No.106191778 [Report]
>>106177733
>CL's Quicklisp doesn't even have version numbers bro

Quicklisp "just works".

And, you are not forced to use Quicklisp, anyways. There are alternatives.
Anonymous No.106191794 [Report]
>>106180763
>but I also think Clojure is both more powerful

A belief, not a fact.

>and more widely used in real-world contexts, both professional and personal

It is CL which has a long history of success stories in professional contexts, for at least 40 years till today.

>and its interoperability with Java gives it more possibilities

You can also get very easy interoperability in Java using Common Lisp, there are at least three alternatives, the easiest one is to use ABCL, a Lisp implementation that runs on the JVM.
Anonymous No.106191801 [Report]
>>106181771
>is Scheme not a good first language?

It is a great first language.
Anonymous No.106191830 [Report]
>>106182444
>So Clojure is like the weird one in the family ?

Totally.

The worst part is that the JVM leaks through Clojure. That is, there is no abstraction or "wall" between, for example, JVM types and some basic Clojure types.

This means that it is tied to the JVM and your code will not necessarily work on Clojure implementations that don't target the JVM.

When you run Lisp under the JVM (using ABCL - Armed Bear Common Lisp), you can execute any Lisp code, which you could also compile to machine language using any of the other awesome implementations of CL like SBCL, CCL, LispWorks, and AllegroCL.

Or compile it to C using ECL.
Anonymous No.106191851 [Report]
>>106182839
>it's an excellent language. it has software transactional memory. it has the ability to "watch" values for when they change. you can toy around with metadata on objects. it is the most terse language I have come across, and allows you to trivially tear apart/assemble data structures with zero ceremony. it has the ability to have maps where keys are namespaced, which is something that I have never seen done before. it provides trivial access to the entire Java ecosystem

All the features listed here are also available in Common Lisp, just import the relevant libraries. Except for "watch values when they change", unless you mean "executing code when data accesors are called", which can trivially be done in Lisp too.
Anonymous No.106191898 [Report]
le new bread
>>106191893
>>106191893
>>106191893
>>106191893