[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip / qa] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology


Thread archived.
You cannot reply anymore.


[Advertise on 4chan]


File: SICP_law.png (174 KB, 392x462)
174 KB
174 KB PNG
>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 (Site)
https://github.com/emacs-tw/awesome-emacs (Awesome Emacs)

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

>Emacs Distros
https://spacemacs.org (Spacemacs)
https://doomemacs.org (Doom Emacs)
https://ergoemacs.github.io (Ergoemacs)

>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 (Introduction to Elisp)
https://gnu.org/s/emacs/manual/elisp.html (Elisp Manual)

>Common Lisp
https://lispcookbook.github.io/cl-cookbook (CL Cookbook)
https://cs.cmu.edu/~dst/LispBook (CL: A Gentle Introduction)
https://gigamonkeys.com/book (PCL)
https://lem-project.github.io (CL editor/IDE)
https://nyxt.atlas.engineer (CL Browser)

>Scheme
https://docs.scheme.org (Docs)
https://scheme.com/tspl4 (TSPL4)
https://eecs.berkeley.edu/~bh/ss-toc2.html (Simply Scheme)
https://archive.org/details/Schemer (Books)

>Clojure
https://clojure.org (Site)
https://clojure-doc.org (Docs)
https://mooc.fi/courses/2014/clojure (Functional programming with Clojure)

>Guix
https://guix.gnu.org/manual/devel (Guix Manual)
https://systemcrafters.net/craft-your-system-with-guix (Introduction to Guix)
https://gitlab.com/nonguix/nonguix (Nonguix)

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

>More Lisp Resources
https://paste.textboard.org/52b08691

(define alt-names '(/emg/ /emac/ /lambda/ /lol/ /let/ /flet/))
(set! prev-bread >>100123076)
>>
File: (((epstein))).jpg (153 KB, 462x489)
153 KB
153 KB JPG
>https://github.com/ECHibiki/Kotatsu-V
faaking fantastic
Is there anything similar written in CL or Clojure?
>>
File: osaidjfoaisdjf.png (429 KB, 900x790)
429 KB
429 KB PNG
fastlisp desu?
>>
>>100200579
you will never be maidschizo
>>
File: 1713433322064049.jpg (335 KB, 1125x1098)
335 KB
335 KB JPG
>>100200779
Dragon maid is my little bitch I will desecrate her inner temple.
>>
Thinking I'll write a game for the Lisp game jam
I've got a cool idea that I could then publish on steam for $3 or something
>>
>>100195011
Slower is relative. I don't care about initial start up cost, besides it everything is snappy
>>
File: CRASHED.png (121 KB, 770x526)
121 KB
121 KB PNG
OpenGOAL über alles !
https://opengoal.dev
https://github.com/open-goal/jak-project
>>
>>100197695
GNU Ubiquitous Intelligent Language for Extensions.
https://dthompson.us/projects/chickadee.html
>>
>>100200472
Why the hell it's so hard to "Make a lisp"? I thought homoinicity is why lisps are so simple and robust. It's easier to write a brainfuck compiler than a lisp interpreter. I wanted to write a simple lisp interpreter, but I sucked. I can't into those "real" languages like c++. And I thought about the idea of writing lisp interpreter with a lisp, but the only thing I can think of is (eval "file.newlisp") And I know how bad it sounds to write a lisp interpreter in python. Fuck me. I don't wanna learn lua
>>
>>100202983
start small
>>
>>100201359
>https://opengoal.dev
amazing
>>100202983
>get symbol
>look for what it should do
>get arguments
>do thing
>else throw error
>repeat
problem?
>>
I'm drinking Miller High Life while cooding
>>
>>100202983
It's very easy, all you need is a readtable, read and eval, and some simple internal functions.
>>
>>100203261
FUCK
I RAN OUT OF MILLER HIGH LIFE
https://www.youtube.com/watch?v=-_aLFgPrX8c
>>
You guys ever use Kate? Is it good? I always thought of it as a FOSS VS Code equivalent but never bothered to look into it.
>>
>>100203231
This looks beautiful, can't understand why people shit on parens
t. knows 0 lisp
>>
>>100202983
>It's easier to write a brainfuck compiler than a lisp interpreter.
wait a minute, anon. you're telling me writing a compiler for a toy turing machine implementation with 6 instructions is somewhow easier than writing an interpreter for an actual usable programming language? I think you need to re-examine your assumptions there kiddo

read sicp if you're interested in writing a lisp interpreter in lisp. or read the make a lisp tutorial. or crafting interpreters. or lisp in small pieces.
>>
File: 1657114385837.png (128 KB, 300x300)
128 KB
128 KB PNG
>>100202983
>he hasnt read sicp
Sicp is required reading. If you read sicp you wouldnt have this problem.
>>
Anyone has some good org css? I'd just like to make decent pages without fiddling too much with css. I am allergic to web dev.
>>
>>100202983
>>100206171
>reminder that everyone on /g/ who says "sicp is required reading" has NOT read sicp
>>
>>100200472
The Continuation Passing Style makes me feel dizzy
>>
>>100203231
this is mental illness
>>
>>100206321
I developed this recently
>https://monospace.games/misc/auction/manual/
>>
>>100206956
You literally make your own lisp in sicp though.
>>
>>100207006
noice thanks man
>>
>>100208206
You're welcome dude feel free to ask for help if you need any, I've unfortunately become very well versed in CSS
>>
>>100200472
I learned scheme at uni and I would like to use it to draw 2d graphics on the screen, is there a library I can use for stuff like that?
>>
>>100208809
Yes, but for which Scheme implementation? Racket has racket/draw. Gambit has raw access to any C or C++ library you can imagine. Guile has Chickadee. Chicken has Hypergiant. Chez has some random stuff.
>>
org-babel is driving me insane and google seems to be utter shit now.
Try to simply run python code:
#+begin_src python
return 1
#+end_src

Returns: org-babel-execute-src-block: No org-babel-execute function for python!
My relevant init.el section:
(setq org-confirm-babel-evaluate nil)
(add-to-list 'exec-path "/usr/local/bin/")
(org-babel-do-load-languages
'org-babel-load-languages
'((emacs-lisp . t)
(shell . t)
(python . t)
(awk . t)
(gnuplot . t)))

Awk and bash work fine. How do I tell this stupid piece of shit where python ad gnuplot are?
>>
(define (cont-frac n d k)
(define (cont-frac-iter i)
(if
(= i k)
(/ (n i) (d i))
(/ (n i) (+ (d i) (cont-frac-iter (+ i 1))))))
(cont-frac-iter 1))

; 1/phi
(cont-frac
(lambda (i) 1.0)
(lambda (i) 1.0)
100)

; e - 2
(cont-frac
(lambda (i) 1.0)
(lambda (i)
(if
(= (remainder i 3) 2)
(/ (+ i 1) 1.5)
1))
100)

; tan
(define (tan.cf x k)
(cont-frac
(lambda (i)
(if
(= i 1)
x
(- (sqr x))))
(lambda (i)
(- (* i 2) 1))
k))

(tan.cf 3.0 100)
(tan 3.0)


abstracting.
i think tonight i'll generate a lot of number sequences.
>>
arctan (1)
(cont-frac
(lambda (i)
(sqr (- 1.0 (* (- i 1) 2))))
(lambda (i)
(if
(= i 1)
1
2))
1000)


times 4
(* ... 4)


is equal to
3.1415426535898243



who set up the rules of the universe wtf is this?
>>
>>100210467
You don't understand math's general faggotry, you just get used to it.
>t. von neumann
>>
>>100210467
>tan(pi/4) = 1
>arctan(1) = pi/4
draw the circle you dumb cunt, even barbarians like the greeks got this
>>
>>100210467
Literally as a direct consequence of the definition.
>>
>>100210467
based retard
>>
>>100210467
Based number theorist

>>100210685
>>100210689
Virgin trig nerds
>>
good night emacbros

keep on lispin
>>
started learning cl. what's the right way to pattern match? I see there are a couple of libraries for it but do I really need a library to do something that common? can someone show an example of what the cl equivalent of having a colour enum and then matching on an instance of it would look like?
>>
>>100210467
>if the opposite and adjacent sides are equal then the angle is pi/4
>who set up the rules of the universe wtf is this?
>>
>>100214157
destructuring-bind is the CL pattern match. Same semantics as macros iirc
>>
bump
>>
>>100209554
help sirs
>>
>>100214157
>enum
CL doesn't have enums.
The equivalent, keywords, can be matched with CASE.
>>
>>100206171
>>100206956
I'm reading it right now. Very tough, but soon I'll get to feel superior to 99% of programmers
>>
>>100218715
Sir I have no idea about your problem at all but instinct tells me it might be some python2 python3 bullshit
Try this:
(setq org-babel-python-command "python3")
>>
there is already a (fast-)lisp (desu) thread on the board though
>>
>>100219825
this helped sar thanks. gnuplot still doesn't work but it is a piece of shit anyways so thanks sar
>>
New to CL. How tough is it using C libraries? I want to bind a physics library (e.g. physx/bullet/ode) for my project, is this viable or a pain in the ass? I saw a couple of binds on GitHub but they're 10+ years old.
>>
>>100221076
Manually doing C bindings in any non C language is dogshit no matter the FFI.
I wouldn't write a custom physics engine either.
Maybe write a C wrapper file to export all the library interface in a way that is amenable to the FFI (instead of returned deeply nested structs with unions, padding and other garbage you need to consider, export functions that take a pointer to the struct and return you the relevant attribute or an array of those).
>>
>>100200472
bros is there any point to using emacs as an editor versus neovim if im gonna just use evil bindings anyway?
>>
>>100222515
yes, the unified access/configuration. e.g. using eshell to CD to a directory, then when you open dired you're already there. or compiling code, and clicking on the error message automatically opens the problematic line in a buffer. just things like that. with nvim you're basically isolated, for better or worse
>>
>>100222532
So basically its better for doing most things out side of maybe raw speed for editing text and startup time? Might as well give it a go and take the plunge then ngl...
>>
>>100222552
Yeah pretty much. Startup time is faster if you use emacs as a daemon though.
Also if you use LSP add this line to your config:
(fset #'jsonrpc--log-event #'ignore)
The LSP implementation with corfu/eglot feels just as fast for me as it does with nvim now (prefix 1, delay 0)
>>
>>100222586
thank you for gracing me with this knowledge. I am relying on whichkey or the equivalent right now, and thats the main area it really feels sluggish compared to neovim.
Will eventually get to work on making my own emacs config, but just running doom 4now :)
>>
>>100222692
gotcha, good luck! stick with it for a couple of weeks and if by then you don't like it then it's fine to drop it.
also give making your own config a try, it's not as daunting as you might think.
>>
>>100222708
lisp configuration is really what is tempting me.
luashit is not fun sometimes
>>
File: 1714252331133765.jpg (224 KB, 794x1348)
224 KB
224 KB JPG
Is there a library for common lisp that lets me switch between eager and lazy execution models at runtime?
>>
>>100222940
hello sir white woiman make cokcy go boing
(defmacro delay (expression)
`(lambda () ,expression))
(define (force delayed-object)
(funcall delayed-object))
>>
Just installed Guix
Which DE/WM you guys use? EXWM seems kind of a meme so I installed it alongside MATE
>>
>>100223431
sway
>>
>>100206956
the real required reading is the little schemer
>>
>>100223431
fvwm
>>
>>100223787
fire valk with me sar
>>
>>100204874
it looks like a more retarded prolog
>>
>>100223431
>>100223742
>>100223787
Can you use Guix as your daily driver?
>>
>>100224277
I use Guix on my laptop and I've had fewer problems on it than my Suse desktop, my Fedora machine, and my Debian computer. Its design of recreating your system cleanly vs trying to incrementally modify it into the desired state has made things really easy and pleasant.
>>
>>100224277
Of course why not? I use it on all my machines now.
>>
arch jannies finally rebuilt emacs so it stops crashing when you use a tree-sitter mode
rust faakheads nearly made me lose my fucking mind trying to debug my config
>>
>>100224306
>>100224438
You compile from source, right? Things like web browsers that are probably written for Linux work fine?
>>
>>100209554
>gnuplot
>>100218715
>>100219825
>>100220503
debug mode showed me I had forgotten to install git on my new distro so some package silently failed.
>>
>>100224481
I usually just use the substitutes, which are binaries built on Guix's servers. That's the default mode and the one I'd recommend.
>>
>>100224993
>I usually just use the substitutes, which are binaries built on Guix's servers. That's the default mode and the one I'd recommend.
i don't mind building from source unless it's shit like firefox. is there a way to specify substitutes only for specific packages?
>>
>>100224481
No, why would I want to? I just let it pull in the binary from the build server.
The only time it compiles is when no binary is available.

I tried compiling everything once and it takes even longer than doing it on gentoo, because guix may build the same build tool or library multiple times, if necessary to guarantee it's built exactly as specified.

>>100225020
I don't know but one way you could do it is have all the stuff you want to compile in your main system declaration, and then the stuff you want installed from substitutes you can install to your user profile.
Also if you're going to the effort of compiling everything it might be interesting to compare your results to the ones on the build server. Because ideally you should bet the exact same result, bit-for-bit. That's why most people don't bother compiling.
>>
>>100225020
Yes you can do that. You can also modify packages, their dependencies, write your own custom packages, and so on. All package management is done through the very flexible Scheme interface.

While not required, I recommend nonguix for firefox + drivers. Just don't talk about it with the guix people. Also, I would recommend making a file with all the packages you want and updating that file instead of using the terminal interface to manage packages.
>>
>>100225156
>I recommend nonguix for firefox
I just use unjewgled chromium on guix. Works fairly well.
>>
File: (卐).jpg (402 KB, 2039x1378)
402 KB
402 KB JPG
((((( Nokolisp )))))

https://timonoko.github.io/Nokolisp.htm
https://github.com/timonoko/nokolisp
>>
How do I get sly to show the function's docstring? All I can get is the arglist in the echo area with `sly-autodoc`. I want eldoc to also show the docstring like in other languages.
>>
>>100228147
Figured it out
>>
>>100225354
>unjewgled chromium
It tends to do quite bad in privacy tests compared to what you can get Firefox to do.
Also the sandboxing situation is much closer than it was 5 years ago and FF even tends to have less reported CVEs which implies they have a slightly higher code quality.
>>
man /dpt/ is really cooked beyond salvation. thank god this thread exists
>>
>>100229612
You made me realize this is the only general i frequent on this website that stays on topic and isnt full of attentionwhore schizos.
>>
>>100229733
we have our schizos occasionaly, like the maid lisp guy

but I think lisp works as a natural filter. it's an old language and there's pretty much no money to be made with it, so everyone here is here because we love programming and lisp. this filters out like 80% of the low quality posters
>>
>>100229846
It also isn't forced as hard online because its not statically typed.
>>
>>100225354
>unjewgled chromium
does Brave not run on Guix?
>>
>>100228828
>doesn't post the solution
Come on
>>100228980
I don't give a fuck, if it works it works
>>
File: sicpjapanese.jpg (1.23 MB, 1080x1871)
1.23 MB
1.23 MB JPG
>There's a pdf of a Japanese version of SICP
https://github.com/minghai/sicp-pdf/
>>
A few months back I sent an email to CNN asking them to revert the recent changes they've made to the style of their lite.cnn.com page so that it'd render correct in EWW but they ignored me.
I was amazed that that page actually used inline styles and rendered correctly even in text based browsers. Its former design was probably like 20 years old and still worked correctly.
FAAKheads had no idea.
>>
How do I make Emacs in to a comfortable Python IDE? I already have the basics.
>>
I just can't seem to get used to switching between buffers in Emacs. In normal text editors like Notepad++, you can always see your tabs and you just click on them. In Emacs, I always end up on some bullshit like the debug window or the async logs when I just wanted to view my next fucking tab. Any tips? I want to do it the Emacs way rather than install a clutch.
>>
>>100233607
For python I use
>with-venv
>pdb-capf
>lsp with pylsp (or eglot but I personally prefer LSP because I installed that first and am too lazy to switch)

>>100233754
The emac way is to use a completion framework and then C-x b <buffer-name>, or if you're within a project use project.el or projectile buffer switch functions. If you find yourself switching too frequently split frame into multiple windows and use multiple frames. At least that's how I do it, I don't use tabs in emacs myself.
>>
>https://protesilaos.com/keeb/2024-04-29-why-i-picked-iris-keyboard/
Holy shit prot has RSI already
>>
>>100233888
It's related to the amount of work you do but also highly dependent on the individual.
>>
>(typep (make-array 5 :element-type '(unsigned-byte 31))
'(simple-array unsigned-byte (5)))
NIL

Kind of retarded desu
>>
>>100233754
I just use the consult-buffer menu and it's fantastic. Lets you preview buffers and such.
>>
>>100232291
risupu sugoi
>>
Retard here, can someone help me understand why this procedure to compute an element of Pascal's triangle gives me an infinite loop if I input anything past (pascal 2 2)?


(define (pascal row position)
(cond
((or (= row 1) (= row 2) (= position 1) (= position row)) 1)
(+ (pascal (- row 1) (- position 1)) (pascal (- row 1) position))))
>>
>>100231604
All I did was enable corfu's popupinfo. I was using a different package that I guess didn't get triggered for some reason. I still don't have docs on hover but I can live with it.
>>
>>100234815
My bad it doesn't even give an infinite loop, it just returns 1 every time. What the fuck
>>
>>100233754
C-x b (find the buffer there)
Also split windows have different histories, I always work in v split
>>
Why doesn't Lisp have static typing?
>>
>>100234880
Mostly not seen as necessary. There are type annotations and other cool stuff in SBCL, but since it's not standardized I don't really use it.

Anyways you can use:
https://github.com/coalton-lang/coalton
>>
>>100234945
Type declarations are standard although implementations may do different things with them and have implementation specific types.
>>
>>100233754
M-x global-tab-line-mode
>>
>>100235141
try not to use this though, get used to the buffer-first workflow first, give it 2-3 weeks, and if you really can't manage, then enable the tab line mode. it really is a crutch though.
>>
File: dwm.png (308 KB, 1280x801)
308 KB
308 KB PNG
>>100223431
>>100124765
https://github.com/engstrand-config/dwl-guile
>>
I'm getting filtered by SICP, I feel like a fucking retard bros. I will push forward nonetheless but fuck
>>
>>100233754
there are many buffer switchers. I used to use the built-in ibuffer, which is nice to learn because it uses the same commands as dired so if you learn to use it you also learn dired automatically. nowadays I use consult-buffer.

I think thinking in terms of 'tabs' is counter produtive in the context of emacs. emacs does have tabs, but they work differently. an emacs tab is an arrangement of windows. for the basic tab functionality you have in other editors, just multiple buffers are enough
>>
>>100234880
pls stop
>>
>>100236974
if it was a breeze you wouldn't be learning anything. struggling is good
>>
How does SBCL/CL in general manage to be so performant even with all the interactive capabilities?
>>
>>100237148
I don't know if I'm learning anything, I'm struggling so much that it's a huge slog. I need help for pretty much all the exercises, and the math is tough since I haven't done any linear algebra or anything of the sort for 4+ years
>>
>>100234880
Almost impractical when the unit of compilation is a single form. It does have types, but they're usually checked at runtime
>>
>>100237148
100% this guy have never read sicp

>>100237379
if you take a step back and just consider purely the math for a moment, you'll realize its not too bad
the first chapter is literally just math functions that are pretty simple. approximations of derivatives, fractions, applying functions to functions for some x
but don't focus too much on what the math itself is trying to accomplish
focus on the computer science part of it. why are the procedures being defined that way? what are the benefits to having procedures accept other procedures? how about returning other procedures?
>>
>>100238843
>100% this guy have never read sicp
never claimed i have. i was merely commenting on learning as a process
>>
>>100238899
i know i can tell by th e way you type
>>
>>100237251
Native code compilation. Honestly it's not even that surprising, the idea that a language cannot be both expressive and reasonably fast is extremely antiquated.
>>
>>100234815
(define (pascal row position)
(cond
((or (= row 1) (= row 2) (= position 1) (= position row)) 1)
(else (+ (pascal (- row 1) (- position 1)) (pascal (- row 1) position)))))

(display (pascal 5 3)) ;=> 6
>>
>>100237251
Performance is very misunderstood by the general programmer community. There is an idea floating around that making things fast means trying to find the fastest way to do a given set of operations. In fact, the majority of performance comes from finding ways to do less operations. Halving the operations that need to be done gives the same performance as doubling the speed of operations. SBCL is a powerful compiler, don't get me wrong, but the wins as a CL programmer come from Lisp's natural ability to reveal what operations are truly necessary, and avoid the ones that aren't, often without the programmer even fully realizing this.
>>
>>100239402
I agree but that's not what I'm referring to. There are quite a few benchmarks comparing the same algorithms in different languages and CL tends to do surprisingly well, in some cases beating C/C++.
>>
how the heck did loop become part of CL? it's miserable
>>
>>100239584
(loop (print "hello"))
(loop
for item in list
for i from 1 to 10
do (something))
>>
>>100239584
its not bad, but it would have been really nice if series had made the standard.
>>
>>100239506
Oh, yeah, the performance of basic primitives in SBCL and the fastest Schemes is on par with -O2 GCC with x64 extensions disabled.
C and C++, despite all the talk about it being so fast, actually have some significant flaws in their execution models. Higher-order execution is very inefficient in both, calls essentially require passing indirection around, the lack of runtime typing can be more efficient but often is not, and it's harder to keep complex data cache coherent than it is in a language with a moving GC. Succeed on these performance fronts, and don't fail too hard at what C/C++ are strong at, and you will often end up matching the performance of C, even in the presence of generics (cheap, branch-predictable) and type checks (very cheap when redundant ones are eliminated).
>>
>>100233839
>use a completion framework
Tell me more.
>>
>>100239607
>>100239730
I don't get the hate exactly but I don't really like it that much, fortunately there's tons of other options I'll get around to using later
>>
How do I hide my computer name on Emacs' title bar?
>>
>>100239998
set frame-title-format
>>
>>100240014
Thanks anon. I'll have to find the formatting docs later.
>>
Being without tabs triggers my autism. I like to close buffers when I'm done with them. Without tabs, I don't see the buffers.
>>
>>100234880
Almost everything is a CONS T T type in Lisp.
I use CL declarations for the few cases where it is actually useful.
>>100240390
Meditate more to soothe your anger at non-visible parts of your computer software
>>
>>100240390
you get used to it. buffers take very little memory, you can have hundreds of them open and, thanks to the fact that there are no tabs, they don't clutter your UI. just forget about them

if you want to clean up, do M-x ibuffer, and press 'd' over each one you want to close, then 'x' to close them all.
>>
Is CL faster than Java thanks to the lack of a VM and native compilation, kind of like Go?
>>
>>100204345
Idk about LISP highlighting but yeah it's really good. Even though it's packed with features i mostly don't use it still is light and starts up fast (ofc on a non-flatpak/snap install)
>>
File: Lisp.png (235 KB, 1920x1080)
235 KB
235 KB PNG
sawaratsuki1004 put out LISP alien logo variant...
>>
>>100240390
C-X t 2 sir
https://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html
>>
>>100241022
he cute
>>
>>100241022
(God language)

https://github.com/SAWARATSUKI/ServiceLogos/blob/main/Lisp/Lisp.png
>>
>>100241022
I just saw it on twitter too

RISUPU!
>>
>>100239506
Benchmarks are a waste of time and always misleading anon.
In real life optimization you have to enable Intel CPU Processor Trace which keeps a ring buffer of everything the CPU does in a compressed format. That's your statistical baseline for the entire system running under full load. Then you identify hot spots which always are some misconfigured queue thing or network problem or triggering the garbage collector when you don't need to, these things can all be finessed to run fast and benchmark for a static program that does nothing is meaningless. Once the bottleneck is ID'd you can break out flame graphs which if you were running C++ would always show malloc taking the most time so everyone who says 'oh that language is GC'd so is too slow' yeah you still have to manipulate the hell out of malloc or else you get the same problem.

Anyway the point is 90% of things that make programs slow has nothing to do with benchmarking or language design
>>
File: CodeIQ-8.jpg (375 KB, 640x827)
375 KB
375 KB JPG
>>100241022 (Checked)
>>100241211 (Checked)
FANTASTIC!
>https://youtu.be/FiVu7Lyfh9g?t=4
>>
File: emac-tan.png (992 KB, 2508x3541)
992 KB
992 KB PNG
(グヌー・イーマックス)

https://github.com/SAWARATSUKI/ServiceLogos/blob/main/Gnuemacs/GNUEmacs.png
>>
>>100241365
This is a very good assessment from the perspective of practical performance when a compiler is being well-behaved overall. Benchmarks (ideally) show the overhead that the compiler and runtime system add. Most people treat it as "x number is bigger than y number", which misses the point. Also, language design affects what decisions a compiler can make, so it's indirectly important in terms of overhead. If each function call made took 100 milliseconds on a given system, then good performing code would look very different than it does now. Fast Python for instance usually looks like FFI out to C code.
>>
>>100241365
Not that anon, but if I'm just a hobbyist programmer I'm never going to do that stuff. So even if benchmarks can't compare the absolute maximum speed a language is capable of given autistic levels of optimization, that doesn't matter to me. I'll probably just program stuff in the most "idiomatic" way, so an idiomatic benchmark is useful.
Plus I don't look at it as actually ranking languages, but more of a way to put them in the same ballpark.
>>
Land of Lisp or Practical Common Lisp? I already know how to program but not too much about CL besides setting it up with Emacs/Sly and basic REPL usage.
>>
>>100242581
PCL without a single sub-atomic particle of doubt. LoL is a silly little book for some fun time, PCL is the best CL book for serious learning
>>
>>100243070
How so? Looking over the glossary it seems LoL covers stuff like creating a DSL
>>
>>100243179
it's a good introductory book, and it's one of the few programming books that are actually funny and not cringe humor. but don't miss PCL, it's the best.
>>
>>100243241
gotcha I'll start with PCL
>>
>>100242581
(CL: A Gentle Introduction) is fantastic as well.
https://cs.cmu.edu/~dst/LispBook
https://archive.org/details/common-lisp-a-gentle-introduction-to-symbolic-computation_touretzky/
>>
>>100243375
PCL is like "why say something in 10 words if I can dedicate an entire chapter to it?"
>>
>>100239584
>>100239607
Only thing I hate about loop is not having better syntax for nested loops. I mean it still works and makes sense to just put another loop inside the first one, but the nested indenting bothers me, it's just ugly.
I know I can just make my own macro wrapping loop to do it but I've gradually abandoned most non-standard things like that as ultimately a waste of time that can cause a lot of issues for no reason so I just live with it.
Still in retrospect it's amazing that I can do it at all so there's that, macros are crazy.
>>
>>100241022
>missing a trailing paren in the logo
>>
>>100242581
Best lisp book ever written is just the reference pdf: http://clqr.boundp.org/clqr-letter-consec.pdf
I've gotten more out of reading through this thing than anything else, even the hyperspec can't compare.
>>
>>100240519
>I use CL declarations for the few cases where it is actually useful.
I use declaim to set an interface for a library, even if the implementation doesn't check against it they are useful for documentation.
They go in a file next to where I write the docstrings
(setf (documentation ...))
.
The actual code is free from type declarations.

>>100240955
Depends on your use case. Not much can beat HotSpot after it's done the second (or third? I can't remember) level of optimisation.

>>100243179
Land of Lisp does not go in depth and does not really show code as it would be written in an idiomatic CL codebase. For example in the last game they coerce between lists and arrays excessively for no reason.
If you want a DSL then its probably better to look at the macro focused books like On Lisp or Let over lambda but they are still sitting unread on my shelf so o can't really comment.

>>100240704
Or just use helm: C-SPC to select, M-D to delete buffers.
>>
File: 1713780109355306.jpg (24 KB, 400x400)
24 KB
24 KB JPG
>setf documentation
>>
>>100242581
Common Lisp The Language. Or just read the ANSI Language Standard.
>>
i'm at a point where i've spent more time researching if i should learn LISP than it would probably take me to learn it.

why can't i decide if it is worth the time.
i mean i'm pretty comfy with rust and idk if i'd even use lisp once i know it but in principle it seems cool.
>>
>>100246018
>take the time
It takes like 5 minutes to learn the syntax and start using it.
Anything after that isn't so much learning lisp as it is just learning programming.
it's like math notation, the actual thing you should be focusing on isn't the syntax.
>>
>>100246018
>idk if i'd even use lisp once i know it but in principle it seems cool.
Don't do it, you will begin to hate writing Rust.
>>
>>100245852
Problem?
>>
>>100246056
yea i mean i know the basics of lisp, but i haven't taken the time to use it enough to make my mind on whether it is worth it or a waste of time.
>>
>>100246172
i doubt it can replace rust for what i do with it though.
it could be a fun prototyping language however.
but so far i'm not really convinced, i like the idea of such strong metaprograming but in practice the lang doesn't look ideal to me.

i do like the idea of being able to "hot reload" and attach to running processes though.
>>
>>100246250
>i doubt it can replace rust for what i do with it though.
I didn't say it could, I'm just saying that writing <other language> is a chore compared to writing lisp.
>>
>>100246234
if your time was that valuable you wouldn't be on 4chins
stop overthinking shit, either do it or stop caring
>>
Is there a difference between the usual O(x) notation and SICP's Θ(n)? It seems needlessly complicated to talk about n, then R(n), then Θ(n)...
>>
>>100248280
O is worst case(x or faster), Θ is exact(only x), Ω is worst case(x or slower)
Casually everyone just used O because it's the only one you can easily type on a standard keyboard, the others only show up when someone is using LaTeX or something and wants to be specific about the math.
>>
>>100248708
*Ω is BEST case
>>
>>100246250
what do you do with rust? I used to think the same thing (also rust dev) but it actually worked out pretty well
>>
>>100248708
>>100248715
Oh okay, thanks.
>exact(only x)
Is that why they sandwich it between constants
>>
>>100246616
I value my time spent in this thread
>>
>>100200472
I don't know anything about lisp more than some anons keep posting this thread every day. Can someone explain what it is, and why using lisp?
>>
>>100249316
It's a programming language or a set thereof
>>
>>100249316
awesome syntax
great performance
interactive development (modify functions at runtime, remotely)
a lot more but that sums it up for me. just go through a random lisp book like practical common Lisp and if by chapter 4 you don't care just drop it
>>
>>100249396
>just go through a random lisp book like practical common Lisp and if by chapter 4 you don't care just drop it
Ok, I'll do it anon. What it's awesome about Lisp, is the surrounding community, given it's not some famous language, so the community really love it, not like other language where people are there just for the jobs.
>>
>>100249482
yeah there's really nothing else like it
>>
>>100200472
I have a question, sorry if it makes me seem like a brainlet. I'm using SLIME in emacs with sbcl common lisp and the cffi. The cffi allows access to a shared library that prints debug messages to stdout. I don't see any of those messages in the repl though. How do I send stdout messages to the REPL?

When I compile the program from the command line with sbcl, everything shows up as intended.
>>
>>100249694
These show up in the inferior-lisp buffer. Slime uses *STANDARD-OUTPUT* stream for the REPL
>>
>>100249929
>these show up in the inferior-lisp buffer

thanks bro, I'm still learning. I appreciate it.
>>
>>100249929
do you know if this is the same for sly?
>>
>>100249316
Lisp is a family of languages that started in the '60s yet was very ahead of its time. There is a lot of high quality literature that explains the structure of the language and the problems it tries to solve. The syntax is as basic as it could possible get. Made of s-expressions
(command arg1 arg2 ... argn) and those expressions can be nested to create whatever program you desire. It teaches you a lot of things: how linked lists work, how recursion becomes useful, how compilers work etc. The more you play with it the more you see things differently. At some point lisp feels more like a compiler larping as a language. Definitely worth a try even as a teaching tool.
>>
>>100250016
It is
>>
>>100250073
thx
>>
>>100249482
Funny, the community in my opinion is actually the very worst part about Lisp.
>>
>>100250041

>started in the '60s

Mid to late 50s actually. Concept was developed between 1956~1958 by John McCarthy and first implementation is from 1958~1959 IIRC by Stephen Russell for IBM 704.
>>
>>100250854
what makes you say that? imo there's nothing wrong about the community besides being small (and as a result you get few and old packages)
>>
>Lisp community
aka a bunch of aging 50 year old schizophrenics
>>
File: 1696117405523690.png (665 KB, 1252x1800)
665 KB
665 KB PNG
What's the state on LISP -> WASM compilation?
>>
>>100251057
I just joined at 25, not too bad
>>
>>100251199
Guile Hoot compiler
otherwise dead because WASM doesn't let you JIT
>>
I don't know much elisp, I only know a little scheme that I picked up by reading parts of SICP.
I was looking at how to configure a theme and the manual has this example.
(defun my-modus-themes-custom-faces (&rest _)
(modus-themes-with-colors
(custom-set-faces
;; Add "padding" to the mode lines
`(mode-line ((,c :box (:line-width 10 :color ,bg-mode-line-active))))
`(mode-line-inactive ((,c :box (:line-width 10 :color ,bg-mode-line-inactive)))))))

(add-hook 'modus-themes-after-load-theme-hook #'my-modus-themes-custom-faces)


What does the ",c" do at the beginning of
(,c :box (:line-width 10 :color ,bg-mode-line-active))


Also, why does it seem like some elements of a list are separated with a comma and others don't?
>>
>>100251375
https://www.gnu.org/software/emacs/manual/html_node/elisp/Backquote.html
>>
>>100251358
i'll just ship the compiler with every webpage
>>
>>100251199
you can use ECL with emscripten. I haven't gotten to it yet but I want to try compiling my raylib game to web at some point:
https://vitovan.com/porting.html
>>
>>100251199
I love marcille
>>100251447
put the whole installation in a usb drive and send it by carrier pidgeon
>>
>>100250854
Idk anon, I'm not invested a lot about LISP, I'm just curious why people like it.
>>
>>100251396
Thanks, I think I got it now.
>>
I don't know how to think of Lisp (CL). Is it interpreted or compiled? Both? How does that work?
>>
Can I go through SICP as a beginner in CL with CL or is it gonna be too much of a pain in the ass? Not interested in Scheme rn
>>
https://blog.redplanetlabs.com/2024/04/30/rama-is-a-testament-to-the-power-of-clojure/
>>
>>100253102
>>100252972
write code niggers
>>
>>100253260
I love Clojure but I, as many others, don't even begin to understand Rama. As supposedly amazing it is, the authors are *terrible* at explaining what it is and how it works. Look at this "big picture" https://redplanetlabs.com/docs/~/tutorial1.html#_the_big_picture
>>
>>100253102
Considering the book teaches you scheme, why are you so opposed to learning it?
There's a couple libraries towards the end of the book you would have access to but apart from that nothing stopping you.
>>
>>100252972
Usually compiled. Sometimes interpreted.
>How does that work?
There's nothing special about either. If an interpreter and compiler follow the same standard then you'll get the same language.
>>
>>100254608
Cause I'm already learning CL, don't wanna add another language that I don't plan on using
>>
>>100254012
This shit is what I cite when I say I'm pessimistic about Clojure's future. If the devs of this thing can't even provide a simple and concrete explanation of what it does, how the hell do they expect other companies to have confidence in it? It might be genuinely impressive tech, but from a business perspective it screams "expensive toy with an extremely poor bus factor".
>>
File: sicp advice.png (196 KB, 2000x1500)
196 KB
196 KB PNG
>>
>>100255015
it's more about convenience, would be cool to tackle the problems in CL so I learn the lang at the same time
>>
>>100255015
I think that this would be more relevant if one was scared of scheme due to it's lispy syntax and not because he want's to use different dialect
>>
I didn't open Emacs today. I instead tried to learn why the Task Scheduler is better than Cron.
>>
>>100255509
Cron literally just werks.
>>
>>100255405
>>100254742
The book spends less than a chapter teaching scheme. If you're going to write your solutions in the same style (you are) then what you're leaning is the slightly different syntax for define instead of defun, etc. CL and the scheme used in the book are incredibly similar, basically the same difference between elisp (excluding cl-lib) and CL.
>>
Day 1 of battling my Lisp addiction:
Today, I did not program in Lisp at all. But I was occupied the whole day thinking about what kind of program I'd write if I was writing Lisp, so I didn't do anything else either.
>>
is there any overhead with using lots of functions vs one big one in CL?
>>
>>100200472
Any of you FAGGOTS going to LambdaConf this year?
>>
>>100256236
im an obese incompetent mongoloid with no social skills so i'm going to cppcon instead
>>
>>100253260
>>100254012
>It’s core API is oriented to working with
Both the blog post and the documentation read like shit.
>let me write a long blog post about how great my library is
>I'll continuously link to more documentation that's written in the same style
>but I won't post any code snippets!
>>
>>100256261
Shit, I wanted to meet /g/entoomen. Although, the last time I did, it wasn't that great.
>>
>>100256236
>in america
it's over
>>
>>100256236
>cites Jai as a systems level programming language included in the conference
Not going anymore. I don't want to discuss a language that isn't remotely available to the public.
>>
>>100256401
I mean honestly, Jonathan Blow (and literally everyone else who has a cOdInG pOdCaSt) has opinions worth the square root of jack shit.
>>
>>100255509
Wait till you learn about M-x proced.
>>
>>100256401
>>cites Jai as a systems level programming language included in the conference
Really? Man, these grifters have way too much undeserved influence. How does their power work?

Jai probably doesn't even exist.
>>
File: o.png (114 KB, 1046x523)
114 KB
114 KB PNG
>>100256236
it's over
where lisp
>>
Is CL decent for shell utilities? I know it's performant, but how's the startup time?
>>
>>100255015
good snek
>>
>>100200472
Why would anyone use lisp over Forth?
>>
How can I send a function to the REPL with Sly? Instead of it being ran off-screen.
>>
>>100256793
split the window and put the repl side by side with code sir
>>
>>100256606
>Is CL decent for shell utilities?
Not really but how many new shell utilities have been written in the past decade?
>how's the startup time?
Can be negligible. ECL and SBCL can produce binaries with pretty quick startup times (I assume LispWorks can too) but its always a tradeoff between startup time, raw performance and binary size.

>>100256793
C-c C-j in SLIME
>>
>>100249127
performance critical stuff and drivers too.
i'll prolly be fine with lisp for less critical stuff, but won't be an option when we try to shave nanoseconds.
>>
>>100246261
well to be fair, right now doing stuff with languages other than rust feel like a chore too lol.
but i'd be happy to find something that dethrones it.
>>
>>100257330
How do you find rust for writing drivers? I only have experience with C89 and don't do any work in the field anymore but I'm still interested in changes.
From what I've seen it (at least used to) either wasn't possible or very hard to get it to handle some exceptional situations gracefully. Though I like how it's harder to ignore integer overflow than in C.
>>
>>100257330
Performance critical as in manually writing SIMD code that operates on flat arrays? If in Rust you're using RAII, copying, boxes, Rc/Arc, and the like, then depending on the use case, Lisp can often beat it in throughput. Latency is where Lisp is more easily beaten due to GC though.
>>
>>100256881
it's already like that. but the expression doesn't show up on the REPL when I C-c it.
>>100257175
I saw this but it's not a thing in Sly apparently
>>
>Settings / Settings Editor / xsettings / Gtk / KeyThemeName
>Click Edit property
>Change value to Emacs
>>
>>100254012
If you've done enough backend or stream processing then Rama is almost obvious and required. If not so you haven't experienced the problem and it feels like an alien insanity.
It's ideas like Designing Data Intensive Applications taken to their extreme
>>100256269
Code snippets have already been posted. We're now at the rationale phase. Would probably be good to add snippets to go along with the text, but it's already dense as it is.
>>
>>100257969
emacs keyshortcuts system wide, nice
>>
>>100258251
Regardless of its actual utility, you have to admit that Rama's advertising makes it look like some kind of snake oil magical solution looking for a problem.
>>
>>100258454
Yeah. I'll try to softly broach the subject with them, but I know they have beta clients, so I guess it's working out for them
>>
how do you guys have auto complete set up with sly? Corfu is super intrusive and gives me tons of bad suggestions.
Like in the REPL, is there a way to hit enter without accepting the suggestion? I just do ctrl g then enter but something like in eshell (alt enter) would be nicer
>>
>>100257969
>>100258300
Mac OS has this by default, inherited from NeXTSTEP
Next time you're shitposting from an Apple Store try using commands like C-a and C-k in a random text entry field
Only works in native widgets though
>>
>>100258251
>We're now at the rationale phase.
You can't justify a decision without evidence. Currently the post is just a list of
>I could do X because of Clojure
>here's a link to the documentation for the result
Don't just tell me about how your fancy functions can emit multiple values, show a snippet of what that means and why I should care. Don't just write "only possible because of Clojure", give examples or explain why Clojure made it possible.
They imply that that their DSL is only possible because of Clojure's macro system but they don't even explicitly say it.
>>
electric pair mode (parens auto completion): yay or nay?
>>
>>100259012
>Don't just tell me about how your fancy functions can emit multiple values
forth did this for decades
>>
>>100259012
Lots of stuff is only possible with a Lisp short of making a custom programming language with custom constructs. I thought this was the primary draw of Lisp!
>>
>>100259111
Something like it is mandatory. Personally I use lispy.
>>
>>100258251
>If not so you haven't experienced the problem and it feels like an alien insanity.
It doesn't feel like an alien insanity, it feels like I don't understand what's happening. I've been looking at it because I'm starting work on an app and its data model will be very hard to integrate with relational databases, so alternatives would be cool. I will probably end up forcing it into working on postgres with some ugly hack code, but it would be cool to use something else.
>>
>>100257350
>well to be fair, right now doing stuff with languages other than rust feel like a chore too lol.
I know the feeling. Rust is pretty cool, however the nature of being a low level language makes it cumbersome to write compared to lisp.
Which should give pause of how fucked languages like java, c# and python really are - they aren't even that much better than Rust despite having all the opportunity in the world.
>>
>>100259601
You can use one of the datalog databases
>>
>>100259584
Yes but where are the examples? To a nonlisper they are bold claims that aren't backed up.
Also other languages have macro systems that can be similarly transformative. Why is Clojure's system better suited for Rama than other lisps? Why is it better suited than Julia?
>>
>>100259114
So has almost every other high level language except Clojure
>>
>>100256236
European thread
>>100256751
Forth is garbage for any actual code.
I tried to write AES256 in Forth a while ago for the lulz but it was such a pain in the ass I gave up, especially since there's zero standardization and all of the Forths are wildly different
>>
Is Lisp or Scheme used for anything commercially or in production anymore? Is there a point to using it outside of practicing functional programming as a whole?
>>
>>100261025
https://allegrograph.com/customers/
>>
File: 9.png (96 KB, 682x225)
96 KB
96 KB PNG
>>100241458

Oh wow... There are lenghty comics about Lisp-chan working at AWS or something...

https://next.rikunabi.com/journal/20160329_t21_iq/
>>
File: 1712907059784910.gif (996 KB, 256x320)
996 KB
996 KB GIF
>>100261560
>vaxx microchips run CL
>>
File: (((RNA))).png (1.24 MB, 2518x1024)
1.24 MB
1.24 MB PNG
>>100261901
das rite motherfaaker
>>
>>100254012
>I love Clojure but I, as many others, don't even begin to understand Rama. As supposedly amazing it is, the authors are *terrible* at explaining what it is and how it works.
McCLIM is exactly the same thing. I have still yet to understand what makes it so different to other GUI toolkits.
>>
>>100262253
Writing for humans is harder than writing for machines.
You have to account for all sorts of fucking things. From the repetition of core ideas to lyricality of words to users attention spans. Its exhausting.
The ancients had 9000 IQ so they communicated all complex ideas using repetitive verse. Lispers should try that.
>>
>>100263210
>trvthnvke
Old application notes from linear technology live rent free in my head. Today most docs are shoddily written, and you rarely now by who.

Some app notes and old eletrodynamics books really formed the core of my electrical engineering intuition for real, but I am not a CS fag.
>>
>>100263309
https://www.youtube.com/watch?v=vrZ_fMqd8k8
>>100263210
>Lispers should try that.
most clojure people are java/web fags by origin
>>
>>100263323
>>100263309
>https://www.analog.com/media/en/technical-documentation/application-notes/an25fa.pdf
look at the last page lmao
>>
File: mode-line-format.png (130 KB, 836x731)
130 KB
130 KB PNG
>>100240097
You start by hitting:
C-h v frame-title-format

Then you click on the "mode-line-format" link.
Emacs can tell you about itself if you know how to ask.
>>
just discovered M-S-a/b
>>
File: hmm.png (50 KB, 745x352)
50 KB
50 KB PNG
>>100264370
What are those bound to?
For me, it's nothing.
>>
I'm a data monkey used to vscode and a few IDEs
Be honest, is emacs worth learning for professional use or is it just fun to tinker with but not as productive as other options?
>>
too many options... smartparens, paredit, lispy.. wtf do I go with for CL?
>>
>>100264849
If you use R then ESS can be quite similar to Rstudio, some say even better.
>productive
entirely up to you
>>
>>100264879
I use mostly python, some C++ too
>>
gnus with (nnrss "url") still prompts for a url when entering the group. Does nnrss-server-data need to be set or something? nnatom works fwiw
>>
Sometimes because of whatever mode I'm using, this happens
text that has a new line or some <press del here>\n
text continuation on the next line with maybe and indentation, or maybe it's code\n
I don't know.

turns into
text that has a new line or some        text continuation on the next line with maybe and indentation, or maybe it's code\n
I don't know.

Is there a command that removes the extra white-space?
>>
https://www.reddit.com/r/lisp/comments/ygebes/passing_c_struct_by_value_cffilibffi_is_250x/?rdt=60332

Sad :(
>>
>>100266080
just-one-space/fixup-whitespace/whitespace-cleanup or query-replace-regex M-j \s-+ with a space
>>
>>100266212
Ok badass if you don't use cffi-libffi and instead use something like CLAW you're chillin:
https://github.com/bohonghuang/claw-raylib
>>
Currently learning LISP's opposite, Perl. I thought that python was a mess, jesus christ this is insane.
>>
>>100268406
kek why the hell are you learning Perl? is there even a modern usecase for it?
>>
How can I have platform specific code in CL? E.g. in Rust you can do: #[cfg(target_os = "macos")]
>>
>>100268940
read the manual of your compiler, sir.
>>
if an algorithm has to mutate shit, does that mean it will never run fast in clojure?
>>
>>100269214
Depends, you can try transients for mutable data
>>
>>100229612
The board in general is cooked, you can't go one thread without dunning krugers yapping about C being the only language of any use. Add a rust user into the mix and now you have a instantaneous combustion of diarrhoea shitting up the thread.
>>
>>100269214
Yep.
Welcome to the new era of programming, where every language can at most support a single programming paradigm, because why would you approach the problem with the best possible tools rather than hammering nails with a screwdriver?
>>
>>100268940
*features*
#+feature #-feature
>>
>>100269395
because programmers are stupid, you have to tie them up and limit their access to tools. Blow up their arms so they can't cut themselves with scissors, sir.
>>
>>100269556
Slave mentality.
I will continue using languages that don't force you to hammer nails with screwdrivers.
>>
>>100269395
I'd much rather have a language that's good for a fair number of things than a language that tries, and inevitably fails, to be optimal for all use cases.
I find that FP weenies are generally honest about the fact that their shit isn't universal, meanwhile you still have the occasional retard parroting OOP cargo cult nonsense straight from the 90s.
>>
File: 1714341601211.png (512 KB, 679x867)
512 KB
512 KB PNG
>>100270088
All OOP languages permit you to write code in the functional style and others while fpturds want you to program in languages where everything is immutable and you can't write any useful code.
It's funny how WEF-tier FP is but not surprising when you realize most of the FP advocates are young, liberal globalism promoters.
>>
>>100270188
d-do not bully haskell
>>
This is what you get when you welcome the terminally contrarian brain worms into your meat computer
>>
>>100269214
https://clojure.org/reference/transients
>>
>>100270188
Clojure supports OOP and mutation perfectly well. It runs on the JVM, if you didn't know. It can sling trillions of indirections and mutations quicker than you can stuff your strawman.
>>
>>100270763
that looks to me like something the compiler should do automatically in most cases tbqh
>>
>>100269395
Most Scala code is just the same overcomplicated OOP bullshit that you might as well write in Java.
Clojure code is almost all functional, which makes it easier to understand.
>>
>>100272202
1. Clojure's compiler is rather rudimentary and relies on JVMs optimisation for performance
2. You would need compile time switches to enable/disable it
3. Its harder than you think, especially if you can't guarantee that bindings remain constant.
>>
>>100254012
Reads like they just proompted all the documentation, a lot of words not a lot of substance.
>>
>In many ways, the current American presidency and XML have much in common. Both have clear lineages back to very intelligent people. Both demonstrate what happens when you give retards the tools of the intelligent.
>>
>>100269390
Correct. CL is the only language worth learning.
>>
>>100269390
We need to return to a more innocent time, where CL and Scheme users try and assert their superiority over the other.
>>
File: PNG image 123.png (187 KB, 774x420)
187 KB
187 KB PNG
>>100274597
>>100274619
Gonna make a game with CL and publish it on Steam to dab on the cniles in /gedg/
>>
eglot or lsp
vertico or helm
corfu or company
>>
>>100274723
eglot vertico company
>>
>>100269214
You can probably write it such that it'll be fine, worst case use a deftype with non synchronized mutable fields
>>
>>100274695
The schemers will have to target the Sega Saturn just to keep up
>>
>>100274723
eglot
helm
helm I don't like automatic completion popups and neither corfu or company are good for searching a large list of symbols.
>>
>>100274723
eglot
vertico
corfu
>>
>>100273069
does clj-kondo check for situations in which you can turn a local variable into a transient?
>>
>>100276907
No, but maybe splint does
https://github.com/NoahTheDuke/splint/blob/main/docs/rules/performance.md
>>
>>100250041
>At some point lisp feels more like a compiler larping as a language

Isn't this explicitly the origin of S-exp? Originally McCarthy designed Fortran-style M-exp (which ironically looks a lot like ML as well) while S-exp is the Intermediate Representation for list-processing to the compiler, but the keyboard at the machine lacks [] brackets and only has () parentheses, and so there we go.

On a side note, Racket ivory tower dictators making Rhombus is just an M-exp syntax finally being the default of an Academic Lisp after 70 years.
>>
>>100254012
I am a recovering backend developer/CFO of a startup and can instantly understand the whole point behind Rama. Basically it integrates the whole auxiliary services needed for scaling up "modern" webapps from 0 to millions of people. So kafka, distributed db, partitioning, etc. And Rama does it all without impendence mismatch that we need right now.

Another alternative would probably be Phoenix with Presence, etc and a distributed DB behind them.

Incidentally, I am bullish on Electric Clojure, because it solves the same thing without scale - every webdev know the pain of plugging in frontend code and backend code. When you can just get the compiler to do it for you...

>>100259601
Interesting. Have you looked at XDTB? Biff, a HTMX framework for solo dev uses it as its default DB.
>>
>>100277652
>Have you looked at XDTB?
Yes, the first prototype code was using XTDB. It's cool, but it didn't solve my specific issues. It's still a relational db in the end. I also wasn't excited about convincing my co-founder to leave Postgres for something he never heard about. However, now that I write it out loud I might be wrong - maybe postgres will work for it.

Users should be able to define their own tables in the app. I realize now that I can just let the user create regular database tables The docs (https://www.postgresql.org/docs/current/limits.html) say I can make 1,431,650,303 tables, which is plenty for now.
>>
>>100274695
I'm doing the same. the GC does scare me though.
>>
File: PNG image 124.png (852 KB, 704x864)
852 KB
852 KB PNG
>>100278153
Don't worry GC is fren
>>
>>100256269
the Rama devs have posted several demos:
https://github.com/redplanetlabs/rama-demo-gallery

>>100278002
>Users should be able to define their own tables in the app.
Thus far it sounds like something that xtdb and the other datalog databases in the Clojure world are actually perfect for.
They're all schema-less by default, and you can nest maps any way you want. I have a 4chan archiver that uses Datalevin and it actually captured all the stockmarket-related stuff on April Fool's Day, unlike DesuArchive's software. Then again this does open up an attack vector for spamming the DB with loads of garbage data if you're not careful.
>>
>>100278844
>Thus far it sounds like something that xtdb and the other datalog databases in the Clojure world are actually perfect for.
What makes you say xtdb is perfect for it? I don't see how it changes the situation, but I might not know enough about it. Please I want all the info I can get here, this could save me a lot of pain
>>
Would you classify emacs as a virtual lisp machine + operating system? Why or why not?
>>
>>100279395
I wouldn't because I'm not fucking retarded. Look up what an operating system is.
No, having tetris is not what makes something an operating system.
>>
>>100279395
I think of Emacs not as an OS but rather as a desktop environment. Like GNOME or KDE but entirely text-based and with all its parts changeable at runtime.
>>
>>100250041
>The syntax is as basic as it could possible get.
not necessarily true. concatenative languages are far more basic (delimiters are a word!)
arguably something like an assembly language is also more basic. CISC machines are cool because they're inflected formal languages.
[eax+4]

this isn't an expression! eax is a root, with the semantic circmfix morpheme indicating dereference (not an operator!) and an infix of "+4" indicating a const offset



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.