[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] [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

Name
Options
Comment
Verification
4chan Pass users can bypass this verification. [Learn More] [Login]
File
  • Please read the Rules and FAQ before posting.
  • You may highlight syntax and preserve whitespace by using [code] tags.

08/21/20New boards added: /vrpg/, /vmg/, /vst/ and /vm/
05/04/17New trial board added: /bant/ - International/Random
10/04/16New board for 4chan Pass users: /vip/ - Very Important Posts
[Hide] [Show All]


[Advertise on 4chan]


File: 1735419853218051.png (443 KB, 833x1200)
443 KB
443 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
https://github.com/emacs-tw/awesome-emacs
https://github.com/systemcrafters/crafted-emacs

>Learning Emacs
C-h t (Interactive Tutorial)
https://emacs-config-generator.fly.dev
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://calva.io
https://clojure.land
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://lisp.nexus
https://rentry.org/lispresources

previous: >>107430835
>>
>>107541491
>https://www.gnu.org/software/emacs/manual/html_node/emacs/Filesets.html
>Does anybody use filesets?
I didn't even know this feature existed until you mentioned it. I've written interactive Elisp functions that opens certain files and lays them out in a window configuration I like. Maybe that could have been done with filesets instead.
>>
File: 1765291264929114.png (615 KB, 640x1135)
615 KB
615 KB PNG
Please, stop posting children being sex'd.
>>
File: 1758764690222893.jpg (249 KB, 1179x1179)
249 KB
249 KB JPG
I give up on Racket. I am sorry.
Clojure, my beloved.
*smooches*
>>
File: 2025-12-13_21-42-13.png (257 KB, 1916x1016)
257 KB
257 KB PNG
4g.el - browse 4chan in org-mode
https://pastebin.com/e0ML0U8s

- last release :: https://desuarchive.org/g/thread/107250617/#107312115
- todo list :: https://desuarchive.org/g/thread/107250617/#107274957
>>
>>107544485
One of my favorite features is being able to `C-c C-c` elisp code blocks to run them. Also, all the Elisp is syntax highlighted correctly.
;; How do these keybindings feel?
(keymap-global-set "C-c 4 4" #'4g-refresh)
(keymap-global-set "C-c 4 b" #'4g-board-list)
(keymap-global-set "C-c 4 c" #'4g-catalog)
(keymap-global-set "C-c 4 r" #'4g-refresh)
(keymap-global-set "C-c 4 t" #'4g-thread)
(keymap-global-set "C-c 4 v" #'4g-view-in-browser)
>>
File: file.png (135 KB, 859x912)
135 KB
135 KB PNG
I came across a new lisp forum.
https://community.metalisp.dev/
>>
>>107543994
Stop trying to impose your moralfaggotry everywhere you go where you DON'T belong.
>>
can the org-transclusion -anon from the previous thread tell us if he's going to contribute his "transclusion scroll" feature back to the main branch of org-transclusion?
>>
>>107544485
I believe I found a minor bug in 4g.el. I can't (easily) have the old lisp general and the new lisp general open at the same time, because they end up having the same buffer name. To work around it, I did a clone-buffer on the previous thread before I tried opening the current lisp general thread. That worked, because the cloned buffer has a different buffer name.
>>
>>107543994
She's being sicp'd, not sex'd.
>>
>>107546343
sexp'd
>>
>>107543874
Anyone who uses Guix, can you help me out with the GUIX_PROFILE warning? Whenever I first download anything I’ll get hit with the “hint: Consider setting the necessary environment variables by running …” warning, and I then run the suggested command in the terminal and all is well. The suggestion is to modify my bash_profile to add GUIX_PROFILE=“home/anon/.guix-profile” . “$GUIX_PROFILE/etc/profile” but the catch is that your bash_profile is read-only if you’re using Guix home.
Oddly enough, this is one area which I find is poorly documented in Guix. What’s the usual proper way of handling this if you’re using Guix home? Do we just directly copy this into the bash-profile part of the config file?
>>
>>107547341
just ask chatgpt my guy
>>
>>107545956
Stop imposing yourself upon children who have underdeveloped brains and can't consent.
>>
>>107547563
LLMs are terrible at Guix
>>
>>107547341
the same way you edit your dotfiles using guixhome, by editing guixhome config
functional paradigm means you modify the input, and never the output
>>
>>107546181
Not sure yet. I want to fuck around in my own repo for now until I figure out which features to have and I've ironed out most bugs. I did make the package with the intention of improving source block transclusions and then merging some of it back to the official package, but It'll probably be only some handpicked features like the scrolling etc.

In any case the package works with both the main and transient branches of org-transclusion so you can use it regardless.
>https://github.com/gggion/org-transclusion-blocks

My plan is to improve the source code documentation/interaction side of things until i have all features which have been on my wishlist for a while:
- [DONE] transclusion from specific branches/commits/revs (https://github.com/gggion/orgit-file and https://github.com/gggion/org-transclusion-orgit)
- [DONE] decomposable transclusion keywords through headers which are compatible with org subtree properties, which can then be programatically manipulated (https://github.com/gggion/org-transclusion-blocks)
- [DONE] Selecting transclusion targets from imenu candidates, create transclusion from selected region or from topmost target at point using which-function (private repo, polishing up stuff before public)

- TODO treesitter integration: this is the big one I want to contribute to the main package, this will allow some other stuff I want to try out like better search and thing-at-point usage, special highlighting, "focus" an area inside a transclusion and other shit.
>>
File: rms-miku.jpg (2.06 MB, 2272x1704)
2.06 MB
2.06 MB JPG
>>107547622
Hmm, I wonder what Stallman thinks about this.
>>
>>107548338
So, for example, I could just edit bash-profile in home-bash-configuration with something like (list (plain-file “guix-profile” “some code I want added to my bash_profile”)), or am I way off here?
>>
Guys when good multithreading in Emacs?
I hate how tramp can just lock up the entire Emacs instance - would be so much nicer if the SSH instance was on a separate thread and tramp just read/displayed/mutated state utilising it. Oh your SSH session is hanging? No need to kill the display!
>>
>>107549124
Does the hanging even happen anymore? I know it was a big problem, but in recent version you can just C-g out of it. Or at least I haven't run into it recently.

There's also this package which makes some dired action async. But it has some limitations, It's on my todo list so I don't know if it's any good
https://github.com/jwiegley/emacs-async
>>
>>107543874
Okay, so I completed the C-h t tutorial. How do I experience the emacs magic?
>>
>>107548511
>- [DONE] decomposable transclusion keywords through headers which are compatible with org subtree properties, which can then be programatically manipulated
I want this in org-transclusion main
>>
>>107549778
yeah I'll probably refactor when I reach 1.0.0 and make a pull request, package will be the testing ground.
>>
>>107549675
M-x bubbles
>>
>>107550083
thank you bro. looking forward to seeing all those happen
>>
>>107544299
Whats wrong with Racket?
>>
>>107548695
yep, although I'm not sure the actual code for it though
>>
>>107548695
to be exact, you add .bash_profile to your guixhome config
>>
>>107550129
no efficient implementations of sets without abusing maps to emulate them
no sequence abstraction that is used as pervasively as Clojure's
no associative abstractions
the JVM is far faster than pretty much any other virtual machine
Racket's pattern matching is cool but Clojure's destructuring is better integrated into everything
see >>107535061
>>
>>107550385
>no efficient implementations of sets without abusing maps to emulate them
I partially retract this, see
https://docs.racket-lang.org/reference/sets.html#%28part._.Hash_.Sets%29
but there are no b-tree sets
>>
>>107548695
this is what i have in my config
(define ~bash-config
(service
home-bash-service-type
(home-bash-configuration
;; …
(bash-profile (list (local-file ".bash_profile" "bash_profile")))
(bashrc (list (local-file ".bashrc" "bashrc")))
(bash-logout (list (local-file ".bash_logout" "bash_logout"))))))

(home-environment
(packages …)
(services (list ~bash-config)))

.bash_logout, .bash_profile and .bashrc are files in the same directory as my home config file
>>
>>107550385
Clojure is closer to Python than it is to Java in terms of performance for anything I've used it for. You have to use all of Java's data-structures and not Clojures to get near Java performance and if you're doing that you might as well use Java and not Clojure.
>>
>>107550497
I would say that it is closer to Erlang by default (which is faster than Python).
imperative Clojure using Java's data structures is more pleasant than raw Java due to the `doto` helper, Lisp syntax, and macros. being able to trivially move from idiomatic Clojure to performance-focused Clojure is very nice, and allows for trivial exploration of problem domains, then optimization of solutions, all without needing to switch languages.
>>
>>107550550
>>107550497
at least the log autist a couple months back ran tests and filled bug reports, you guys are just wanking around.
>>
>>107550689
>>
>>107550447
Oh right, so I actually just get Guix config files to source bash profile and don’t actually need to worry about manually coding anything in Bash at all, is that right? So I just declare in my home config I want Guix to source bash_profile and that’ll set up the same thing as those two lines where I’m setting the profile and then executing the script in etc/profile? I hope I’m interpreting this right, since this sounds like a very comfy way to handle all this.
>>
>>107550716
post benchmarks, examples etc
>>
Does anyone have that "useful things in emacs to learn chinese" or similar? I forgot to save the link and <<they>> killed search engines.
>>
>>107551157
write more code
I'm not going to benchmark Python vs. idiomatic Clojure vs. imperative Clojure vs. Elixir just for your ass
here, have a bench mark of a hash table implementation I wrote in Rust that outperforms Rust's native Swiss Table implementation
>>
>>107551266
>Rust
How's the transition going for you?
>>
>>107551427
I would transition your cerebellum into pavement art
I would also post my big meaty cock, but the jannies get angry about that, and I do not want to desecrate the Lisp general, the only meaningful place on this shitty board.
>>
How do you cope with LLM advances bros?
Whenever I try to learn new things I think it's gonna be all for nought if these models progress at their speed
>>
File: 1726434542556820.jpg (127 KB, 480x348)
127 KB
127 KB JPG
>>107551543
continuous LLM advancement will almost certainly result in a war of some kind. wars between nations if they are in genuine competition regarding AI strength. revolutions if people have too much opportunity seized from them (and nations act in unison in order to avoid nation-level conflict).
anyway just do what you want man. solving problems with Lisp is cool. God smiles upon those that create, similar to Him in His image
>>
How does systems programming work with Lisp.
I'm sure there's a reasonable answer but my brain just refuses to make any sense of it. This language of abstract macaroni noodles doesn't seem like it should be capable of interacting with hardware.

Does it have... pointers? How does this work.
>>
>>107551579
Common Lisp has nice FFI You can just generate functions that call down to C that are also valid Lisp functions, and pass memory over through clear structures. Quite neat.
>>
>>107550830
no, you still need to write some bash (either directly in your home config or in a separate file) if you want to source GUIX_PROFILE/etc/profile. the config i showed tells guix home to append the contents of the local-file .bash_profile to the default contents of ~/.bash_profile, like the manual says
     ‘bash-profile’ (default: ‘()’) (type: text-config)
List of file-like objects, which will be added to
‘.bash_profile’.

if you don't want guix to use any defaults in the bash files, you need to set `guix-defaults?' in `home-bash-configuration' to #f. the defaults are defined in the module (gnu home services shells) https://codeberg.org/guix/guix/src/commit/master/gnu/home/services/shells.scm#L421

also i just found out that it's better to export GUIX_PROFILE. this is what /etc/profile says:
# When GUIX_PROFILE is undefined, the various environment variables refer
# to this specific profile generation.

so the contents of the local-file .bash_profile should be something like

# ^ Additional whitespace because this is appended directly to ~/.bash_profile
export GUIX_PROFILE="$HOME/.guix-profile"
. "$GUIX_PROFILE/etc/profile"
>>
>>107551579
i'm a beginner too but for CL, lookup https://github.com/froggey/Mezzano



[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.