[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
>>
>>107551579
that's a good question. how people usually do system programming on lisp? I imagine that any language that has a syscall function and a way to interact with asm can do anything
>>
>>107552142
Okay "syscall" I guess the answer. Makes sense.
>>
>>107549273
>Does the hanging even happen anymore?
Yes

>I know it was a big problem, but in recent version you can just C-g out of it.
This has also been my experience, but having to C-g is still annoying.

https://github.com/jsadusk/tramp-hlo
This is supposed to help, but I haven't tried yet.
>>
>>107547341
i had exacly the same problem as you half a year ago!

solution no.1 (for non guix os distros, integration wit foreign distros)
https://gist.github.com/peanutbutterandcrackers/844c211a91137c19607ae75b59fa116f

solution no.2 if no.1 not works (because i tried it and it didnt worked for some distros, idk why, it wont work as good as no.1, launching via gui in gnome, no integration with desktop, etc..., but at least i have most of environment variables set correctly,)
https://pastebin.com/wSpvPLra
>>
>>107551568
>>107551543
how many dogs do you put in your sledge until it starts going past the sound barrier? The answer is of course rape your own sister and scam everyone. Sam Altman and the jews are at it again.
>>
>>107553054
do you seriously think that your civilian ass gets to witness the most novel developments in militaristic or fintech-esque AI systems?
you have so much shit over your eyes, simply because "hurr ChatGPT cannot reliably count the letters in words" or whatever.
as with every single other fucking thing on the planet, and in every single argument made throughout the history of human civilization, the naysayers are incorrect and the yesmen are incorrect. there is a middle ground. the middle ground of AI is absolutely threatening to the integrity of human civilization as we know it.
>>
>>107553268
kek the middle ground just so happens to be what AI companies want you to believe. alright
>>
>>107553268
>the middle ground of AI is absolutely threatening to the integrity of human civilization as we know it.
Nah
>>
>>107553268
Most people still don't know it exists despite being publicized
>>
>>107551579
>Does it have... pointers? How does this work.
In guile you can treat arrays as pointers with bytevector->pointer/pointer->bytevector to trade binary blobs with c libraries

>>107552142
Example of how inline assembly can be written:
https://github.com/udem-dlteam/mimosa/blob/master/scheme/interpreted/x86-os.scm#L49
>>
>>107554422
>bytevector->pointer
I didn't know about this, this could be pretty useful
>>
GNU Emacs is annoyingly useful: https://www.youtube.com/watch?v=DMbrNhx2zWQ
>>
post what you listen to while writing Lisp
https://www.youtube.com/watch?v=Z48KUf-RiGw
>>
>>107556206
two that came up just now:
https://www.youtube.com/watch?v=Wna1A2AsAmM
https://www.youtube.com/watch?v=wauGFjVXGPA
>>
>>107551702
Ah, this makes so much more sense now, thank you. Am I understanding it right that there are two profiles that need to be set, by the way, another one being for Guix home so that it can then find packages in the path after installing?
So ie I’d want both what you wrote there in bash_profile, but also another one like . “$HOME/.guix-home/profile/etc/profile”? I don’t know if this sounds dumb but this was not at all obvious to me from the documentation.
>>
>>107556206
https://youtube.com/watch?v=RC7m0FEAfQM

I don't like listening to music while programming, except to drown out environment noise.
>>
>>107556206
I like jazz-fusion, specially T-SQUARE: https://www.youtube.com/watch?v=9jicFDOPKM8
>>
>>107556206
https://youtu.be/lJVKTLNvHaQ?si=ElJa_lNfVkLnC3wd
>>
>>107550447
>>107550830
yes, guix can carry your specified .bash_profile using (local-file) function, but you have to provide the .bash_profile file itself
(local-file "foo") means it will carry the foo file from current directory and in the next guix home invocation, it will generate the foo file in ~
>>
>>107556102
This is perfect pro-Emacs propaganda -- Short, sweet, and to the point with a little reverse psychology.
>>
There's nothing exciting in Emacs 31 to look forward to.
>>
>>107558770
OH YEAH?!
how about
https://github.com/emacs-mirror/emacs/blob/1b31023dabc8df23563eccf28490a153a4c22668/etc/NEWS#L3203-L3205
>>
>>107558890
That's something so trivial that you could just write your own in like 5 or 6 lines of Elisp. I don't think it really justifies the hurdle of tinkering all init.el just to get a newer version.
I will probably only update Emacs when we get something more relevant like multi-threading. Otherwise I don't really think it's worth the headache.
>>
>>107558890
That doesn't have to be a minor mode (like the other anon said). A hook would be enough.
(add-hook 'before-save-hook #'delete-trailing-whitespace)
>>
>>107556206
https://www.youtube.com/watch?v=jD8vHbEwRe0
>>
>>107559192
That isn't buffer local. You would need another hook added to something like a major mode hook which would add delete-trailing-whitespace to before-save-hook locally. The idea with the new minor mode is that it wouldn't be on in every buffer.
>>
>>107558890
Why are they deleting censored files, didn't they suffer enough?
>>
>>107559316
its over
>>
>>107551196
https://jiewawa.me/2025/11/tools-for-studying-chinese-with-emacs/
>>
So you guys hide emacs GUI buttons on top?
Also does everyone here use vim hotkeys a.k.a. evil mode?
>>
>>107560695
>So you guys hide emacs GUI buttons on top?
yes
(tool-bar-mode 'toggle)

>Also does everyone here use vim hotkeys a.k.a. evil mode?
I use evil, but I think I'm in the minority here.
>>
>>107560695
>So you guys hide emacs GUI buttons on top?
Yes.
>Also does everyone here use vim hotkeys a.k.a. evil mode?
No.
If I had to guess, there's more people who hide the toolbars than who use evil
>>
>>107560695
I do but not everyone does. The toolbar is good for when you don't know many commands yet. evil mode is for when you know vi or want to know vi because vi is extremely common, especially in unixland. evil is not necessary when there is god and meow modes which integrate a lot better with emacs.
>>
>>107560895
I was a vim user for around 10 years and I thought I was genius for doing "set -o vi" in bash, but when I switched to emacs I realized GNU readline hotkeys were always there in all shells (python or ruby too).Even gnome can do emacs input (interestingly it works better in Chrome, than in Firefox). And I hear emacs hotkeys work even better on apple OS, although I've never used it. I guess this is the reason people stick to emacs hotkeys.

I also heard evil conflicts with many emacs hotkeys, is this true?
>>
>>107560972
>I also heard evil conflicts with many emacs hotkeys, is this true?
That's why evil-collection exists to bridge that gap.
https://github.com/emacs-evil/evil-collection
There are modes that it doesn't cover though. For example, prot's tmr isn't covered by evil-collection (yet).
>>
File: file.png (120 KB, 897x370)
120 KB
120 KB PNG
>>107560695
>So you guys hide emacs GUI buttons on top?
Yes.
>Also does everyone here use vim hotkeys a.k.a. evil mode?
I used in the beginning because I was a Vim user. But after getting so many conflicts with other packages I just tried using Emacs defaults and didn't went back anymore. Also, my Ctrl key is on the thumb area, so hitting Ctrl isn't really horrible.
>>
>>107556886
it's true that the concept of profiles isn't really well documented in the manual, but this blog post can help clarify things
https://guix.gnu.org/eo/blog/2019/guix-profiles-in-practice/
>two profiles that need to be set
only the default user profile (~/.guix-profile/) needs to be set on non-Guix distros. guix home takes care of setting its own profile. it does this by the ~/.profile file it generates, which sources ~/.guix-home/setup-environment
>>
>>107560695
>So you guys hide emacs GUI buttons on top?
yes
>Also does everyone here use vim hotkeys a.k.a. evil mode?
I use doom emacs, so yes.
meow seens like it's superior to evil, but I'm not going to invest hours into configuring it.
>>
>>107561015
> I just tried using Emacs defaults and didn't went back anymore. Also
That’s the way to do it.
I maintain using “esc” as meta instead of alt because I still use emacs in harsh environments and over terminals (and terminals into other terminals)
>>
https://desuarchive.org/g/thread/107314730/#107404692
https://desuarchive.org/g/thread/107314730/#107405107

Continuing on this theme, I just wrote an eshell function that'll display images in a grid.

Example:
grid *.jpg

(defun eshell/grid (args)
"Display images in a grid."
(interactive)
(let* ((max-width 350)
(flat-args (flatten-list args))
(width (window-width (selected-window) t))
(items-per-row (/ width max-width))
(rows (seq-split args items-per-row)))
(if (seq-every-p (lambda (arg)
(and (stringp arg)
(file-exists-p arg)
(image-supported-file-p arg)))
flat-args)
(with-temp-buffer
(insert "\n")
(dolist (paths rows)
(dolist (path paths)
(insert-image (create-image
(expand-file-name path)
nil
nil
:max-width max-width)))
(insert "\n"))
(insert "\n")
(buffer-string))
)))
>>
>>107560695
>So you guys hide emacs GUI buttons on top?
usually, gdb makes good use of the toolbar though
>Also does everyone here use vim hotkeys a.k.a. evil mode?
no I wrote a better one
>>
>>107557357
fucking great
https://www.youtube.com/watch?v=wPCS6EHyyAg
>>107556848
https://www.youtube.com/watch?v=lgKQmFR-xqk
>>
Huh aren't amd drivers supposed to be open source(I know free software, but in this case probably not). I got this old FirePro(should be first generation that supports amdgpu albeit "experimental" also works with radeon) and Guix says it isn't supported. Can I download it separately from nonguix or do I need the mainline kernel?
>>
https://www.youtube.com/watch?v=DMbrNhx2zWQ
>>
Uhh? mods? child porn in the freaking OP... AGAIN!
>>
Uhh? mods? redditor in the freaking thread... AGAIN!
>>
File: 1763904185993879.png (813 KB, 1080x1062)
813 KB
813 KB PNG
>>107562002
Nice thanks for sharing
>>
File: 2025-12-15_19-10-46.jpg (1.1 MB, 1904x2065)
1.1 MB
1.1 MB JPG
>>107564928
I learned how to parse command line arguments in eshell.
(info "(eshell) Defining New Built-ins")

https://www.gnu.org/software/emacs/manual/html_node/eshell/Defining-New-Built_002dins.html

(defun eshell/grid (&rest args)
"Display images in a grid."
(interactive)
(eshell-eval-using-options
"grid"
args
`((?w "width" t --width "maximum width of an image (default 350)")
:show-usage
:usage "[OPTION]... [IMAGE]...\n\nDisplay images in a grid.")
(let* ((max-width (if --width (string-to-number --width) 350))
(flat-args (flatten-list args))
(width (window-width (selected-window) t))
(items-per-row (/ width max-width))
(rows (seq-split args items-per-row)))
(if (seq-every-p (lambda (arg)
(and (stringp arg)
(file-exists-p arg)
(image-supported-file-p arg)))
flat-args)
(with-temp-buffer ; I Emacs.
(insert "\n")
(dolist (paths rows)
(dolist (path paths)
(insert-image (create-image
(expand-file-name path)
nil
nil
:max-width max-width)))
(insert "\n")) ; end row
(buffer-string))
))))
>>
>>107544299
https://jank-lang.org/ like clojure but native

>>107550385
>the JVM is far faster than pretty much any other virtual machine
Isn't racket compiling to native code since it has moved to a chez scheme backend?
>>
>>107565247
This is really going to up our gooning game
>>
>>107547622
recent studies have demonstrated that a 9 year olds brain is as functional as a 32 year old's brain.

So you either have to admit that 9 year olds can consent, or come to terms that that 32 year olds are children and shouldnt be allowed to vote/hold office/leave their mommies and daddies and therefore shouldnt be allowed on an 'adult' website like 4chan.

https://www.bbc.com/news/articles/cgl6klez226o
>>
>>107565247
why is her mouth censored?
>>
File: file.png (194 KB, 376x350)
194 KB
194 KB PNG
>>107565865
Gooks have very disgusting teeth. Censoring that is a matter of etiquette.
>>
AW YEAH
Getting closer lads
can live sync this shit now, has a few bugs as usual, but it works. I probably couldn't exit the live-sync due to the new lines not having the text properties that link the content to the transclusion, I'll have to patch that in.

I'm now working on mantaining live-sync when scrolling through the src block, so that I can scroll down without having to exit and start for each adjustment.
>>
>>107566104
Alright alright, weird fucking bug when exiting the transient menu (src block header gets plastered over the overlay at the SOURCE buffer), but I'll take it, I'll call it a night and continue another day, this is ALMOST useful.
>>
>>107547341
Just put it in your `~/.config/guix/home/config.scm` under `home.sessionVariables` like:

(home.sessionVariables
(list (cons "GUIX_PROFILE" "$HOME/.guix-profile")))

Guix Home will handle the rest, no need to touch the read-only bash_profile.
>>
>>107565247
flat-args isn't needed, because eshell-eval-using-options flattens args for you by default.
>>
>>107565247
looks cool but why not use image-dired ?
>>
>>107566104
>>107566218
nigga I need this

#+header: :transclude
[[file://path/to/file]]
#+header: :transclude-lines
<TRANSCLUDE-CONTENTS-HERE>

With the regular transclusion, it loses the file link, it becomes invisible, I hate that. Yours keeps it, and openly tells ":transclude"

I need dat. Contribute bac to the org-transclusion/main naoow

Btw, does your thing work with id: links (from org-id library) as well??
>>
>>107567898
>With the regular transclusion, it loses the file link, it becomes invisible, I hate that
Yeah same reason I made the package.
> Contribute bac to the org-transclusion/main naoow
Use the fucking package no need to configure anything, just use-package after org-transclusion.el and done, I wont be making a pull request to org-transclusion for a while until this thing works flawlessly with the main package. There are some bugs but it's mostly qol stuff and silly shit like the line range thing in the video.
>https://github.com/gggion/org-transclusion-blocks

;; using straight
(use-package org-transclusion
:straight (:host github :repo "gggion/org-transclusion-blocks")
:after org-transclusion)

;; or locally
(use-package org-transclusion-blocks
:load-path "$PATH-TO-PACKAGE"
:after org-transclusion)


Simple transclusions work out of the box and it respects property inheritance from subtrees.
:transclude [[LINK GOES HERE]]
:transclude-lines 10-20
OR :transclude-thing sexp/defun/etc
<SRC BLOCK GOES HERE>

Alternatively
:transclude [[LINK GOES HERE]]
:transclude-keywords ":lines 10-20 :only-content etc etc"
<SRC BLOCK GOES HERE>
>>
>>107566865
must be a Nix user
>>
When to use multiple dispatch? Where does it come in handy?
I've wanted to learn CLOS and multiple dispatch for a while but I'm struggling to justify it when making shit.
>>
>>107568710
It cuts a lot of the design pattern bullshit at the root.
>>
>>107569078
>design pattern bullshit

Got any examples?
For example what comes to mind is that it allows avoiding flow control logic like
if A -> exec funct-a
if B -> exec func-b
if C or D -> exec func-c


And instead just call the function you need when you need it simply with different args, in that sense it seems like it would allow avoiding a ton of useless boilerplate and hardcoded case shit, which I like, but I'm trying to figure out when it's a plus to use it and not overkill.
>>
I like guix, but it's rather convoluted compared to nix
it even has clusterfuck le epic monadic nonsense just to create a derivation, fuck you ludovic
(use-modules (guix gexp)
(guix store)
(guix derivations))

(run-with-store (open-connection)
(gexp->derivation "delidme"
#~(copy-file #$(local-file "README.md") #$output)))

>in nix this is just
with import <nixpkgs> {};

runCommand "delidme" {} ''
cp ${./README.md} $out
''
>>
>>107569490
>nix"lang"
>needs to call bash for anything
>>
>>107569550
almost like Makefile, right?
as it should be
>>
>>107569557
GNU Make supports Guile doe
https://www.gnu.org/software/make/manual/html_node/Guile-Integration.html
>>
>>107569588
so is nix
''
guile -c '(some-function)'
''
>>
>>107568710
Out of all the languages that have multiple dispatch, I think Julia makes the best use of this feature, because:
- All functions are generic by default (so you can't opt out of it), and
- as a result, they got community-wide buy in on multiple dispatch, so it's used pervasively.

One small example of how to design a library using multiple dispatch is Nomnoml.jl.
https://github.com/MichaelHatherly/NomnomlJS.jl

In Julia, Base.read is a generic function with many specialized methods. (They use the same function/method terminology as CL's generics.) Here are a few basic examples.

# lang: julia
# Load the contents of a file into a Vector{UInt8}.
# Base.read(AbstractString)
read("file.txt")

# Load the contents of a file into a String.
# Base.read(AbstractString, Type{String})
read("file.txt", String)


https://github.com/MichaelHatherly/NomnomlJS.jl/blob/master/src/NomnomlJS.jl#L170-L181
He went and added his own specialization of Base.read to load a diagram.
# lang: julia
# Base.read(AbstractString, Type{Diagram})
read("file.txt", Diagram)


So far, we've seen 3 different Base.read methods that dispatch on:
- AbstractString
- AbstractString, Type{String}
- AbstractString, Type{Diagram}

He also added his own Base.write for saving Diagrams in various formats. From his README, he has:
# lang: julia
d = Diagram("[A] is -> [B]")
write("diagram.svg", d) # save as SVG
write("diagram.png", d) # save as PNG


His Base.write dispatches on Base.write(AbstractString, Diagram), and he has code to infer the mime type from the filename and perform the right actions to take an instance of Diagram and write it out as an SVG or PNG or whatever.

Note that there's no such thing as a class or object in Julia. However, there are types and instances of those types. Base.read and Base.write are generic functions, and they don't belong to any type. However, they have specialized methods that for various combinations of types.
>>
>>107568710
Sorry I don't have any CL examples off the top of my head. If you want a lispier example, look at the Elisp code in map.el.
https://github.com/emacs-mirror/emacs/blob/master/lisp/emacs-lisp/map.el
It tries to provide a unified API for working with alists, plists, and hashtables.
>>
>>107549675
>How do I experience the emacs magic?
>There's no prize at the bottom of the box
At some point you begin to ask yourself why are you learning this shit.
>>
If you're not having fun, do something else.
>>
>>107543874
What's the name of this amazing lips doujin?
>>
File: file.png (251 KB, 1844x972)
251 KB
251 KB PNG
>>107569794
>>107569789
Thanks bros, both examples make it clearer.
From the looks of it I might use it to improve extensibility/API usage for a project at work.

I'm making a tool that'll parse XML into a readable, easy to use data structure. The XML is babylonian legacy shit and it's used to orchestrate data processing jobs like cavemen, but there are a lot of types of processes, catchers, assignment steps and the like all over the XML. It's basically a pseudo programming language so retards can play and link boxes together in a web app. But it's being used to create production pipelines for a fucking 150 billion company, my team mates are burn out from having to tard wrangle the boxes into something usable so I want to make it into an actual language that can be parsed to and from the XML hellscape.
>>
>>107569799
never happened to me desu
>>
>>107565247
(defun row (n) (/ (window-width (selected-window) t) n))


grid -w (row 5) *.jpg
>>
>>107543874
How is anyone getting filtered by the new captchas? They're so easy
>>
PSA:
4chan X/XT fix for new captcha.
>>107573703

(On 4chan XT, the line number for me was 6673.)
>>
>>107573907
or just update 4chanx
>4chan XT
isn't that abandonware?



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