(λ) - Lisp General
Anonymous 01/05/25(Sun)00:22:52 | 329 comments | 61 images | 🔒 Locked
>Lisp is a family of programming languages with a long history and a distinctive parenthesized prefix notation. There are many dialects of Lisp, including Common Lisp, Scheme, Clojure and Elisp.
>Emacs is an extensible, customizable, self-documenting free/libre text editor and computing environment, with a Lisp interpreter at its core.
>Emacs Resources
https://gnu.org/s/emacs
https://github.com/emacs-tw/awesome-emacs
https://github.com/systemcrafters/crafted-emacs
>Learning Emacs
C-h t (Interactive Tutorial)
https://emacs.amodernist.com
https://systemcrafters.net/emacs-from-scratch
http://xahlee.info/emacs
https://emacs.tv
>Emacs Distros
https://www.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/p3r7/awesome-elisp
>Common Lisp
https://lispcookbook.github.io/cl-cookbook
https://cs.cmu.edu/~dst/LispBook
https://gigamonkeys.com/book
https://lem-project.github.io
https://stumpwm.github.io
https://nyxt-browser.com
https://awesome-cl.com
>Scheme
https://scheme.org
https://try.scheme.org
https://get.scheme.org
https://books.scheme.org
https://standards.scheme.org
https://go.scheme.org/awesome
https://research.scheme.org/lambda-papers
>Clojure
https://clojure.org
https://tryclojure.org
https://clojure-doc.org
https://www.clojure-toolbox.com
https://mooc.fi/courses/2014/clojure
https://clojure.org/community/resources
>Other
https://github.com/dundalek/awesome-lisp-languages
>Guix
https://guix.gnu.org
https://gitlab.com/nonguix/nonguix
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://paste.textboard.org/52b08691
(set! prev-bread (quote >>103642917))
>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
https://github.com/systemcrafters/c
>Learning Emacs
C-h t (Interactive Tutorial)
https://emacs.amodernist.com
https://systemcrafters.net/emacs-fr
http://xahlee.info/emacs
https://emacs.tv
>Emacs Distros
https://www.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/eint
https://gnu.org/s/emacs/manual/elis
https://github.com/p3r7/awesome-eli
>Common Lisp
https://lispcookbook.github.io/cl-c
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-
>Clojure
https://clojure.org
https://tryclojure.org
https://clojure-doc.org
https://www.clojure-toolbox.com
https://mooc.fi/courses/2014/clojur
https://clojure.org/community/resou
>Other
https://github.com/dundalek/awesome
>Guix
https://guix.gnu.org
https://gitlab.com/nonguix/nonguix
https://systemcrafters.net/craft-yo
https://futurile.net/resources/guix
https://github.com/franzos/awesome-
>SICP/HtDP
https://web.mit.edu/6.001/6.037/sic
https://htdp.org
>More Lisp Resources
https://paste.textboard.org/52b0869
(set! prev-bread (quote >>103642917))
Anonymous 01/05/25(Sun)00:50:29 No.103762979
>Emacs manual
>Intro to program in Elisp
>Elisp manual
Study group, everyone? I haven't done any online study group before but I'll post my process here now and then.
>Intro to program in Elisp
>Elisp manual
Study group, everyone? I haven't done any online study group before but I'll post my process here now and then.
Anonymous 01/05/25(Sun)00:53:43 No.103762997
>>103762979
I don't have a study group but I'd be down to be part of one. How and where would you like to start it?
I don't have a study group but I'd be down to be part of one. How and where would you like to start it?
Anonymous 01/05/25(Sun)01:27:53 No.103763228
>>103762997
>How and where would you like to start it?
Emacs manual, intro to elisp, then elisp manual, in that order.
I honestly have to idea how a study group for such technical books should work—unlike textbooks, there are no exercises to solve together, unlike fiction books, there are no plot/characters to analysis.
I guess I'll aim to finish the manual within this month and post what I find interesting there.
>How and where would you like to start it?
Emacs manual, intro to elisp, then elisp manual, in that order.
I honestly have to idea how a study group for such technical books should work—unlike textbooks, there are no exercises to solve together, unlike fiction books, there are no plot/characters to analysis.
I guess I'll aim to finish the manual within this month and post what I find interesting there.
Anonymous 01/05/25(Sun)01:31:45 No.103763247
This behavior by elisp is very confusing to me
However
It seems that 'delete removed the element ".." and then added back the element "."
I don't get it
(delete "." '("."))
nil ;; makes sense. 'delete removes the element "." and returns the new list
(delete ".." '(".."))
nil ;; this also makes sense
However
(setq hi '("." "..")) ;; define list hi
("." "..")
(delete "." hi) ;; removes "." from hi
("..")
(delete ".." hi) ;; removes ".." from hi?
(".")
It seems that 'delete removed the element ".." and then added back the element "."
I don't get it
Anonymous 01/05/25(Sun)01:49:25 No.103763355
>>103763247
You deleted a copy of hi and got the result of that operation. The origin hi is untouched.
You deleted a copy of hi and got the result of that operation. The origin hi is untouched.
Anonymous 01/05/25(Sun)01:51:05 No.103763372
cunny got me thinking bout common lisp macros
Anonymous 01/05/25(Sun)02:16:19 No.103763534
>>103763372
that doesn't sound hygienic
that doesn't sound hygienic
Anonymous 01/05/25(Sun)02:22:21 No.103763576
>>103763355
No, delete changes the list hi and does not make a copy. The example I gave isn't really a big deal because if "." and ".." are the first two elements of the list hi I can remove them with
No, delete changes the list hi and does not make a copy. The example I gave isn't really a big deal because if "." and ".." are the first two elements of the list hi I can remove them with
(setq hi (cdr (cdr hi)))But this behavior still confuses me.
Anonymous 01/05/25(Sun)04:25:53 No.103764260
is emacs mandatory for using lisps
Anonymous 01/05/25(Sun)06:54:08 No.103765025
Bump.
>>103755989
>>103755989
Anonymous 01/05/25(Sun)07:12:04 No.103765139
Anonymous 01/05/25(Sun)07:21:00 No.103765209
>>103763576
DELETE is a destructive operation. This means it will reuse and potentially change structure of the list you pass in. In this case it likely returns (cdr LIST). Your variable HI stil points to the old head of the list and is thus unchanged.
NEVER rely on the side effects of destructive list operations. You must always continue using the return value.
DELETE is a destructive operation. This means it will reuse and potentially change structure of the list you pass in. In this case it likely returns (cdr LIST). Your variable HI stil points to the old head of the list and is thus unchanged.
NEVER rely on the side effects of destructive list operations. You must always continue using the return value.
Anonymous 01/05/25(Sun)07:22:41 No.103765216
>>103763576
>>103765209
You seem to think DELETE works similarily to PUSH. However, it doesn't, PUSH is a macro, delete is a function.
>>103765209
You seem to think DELETE works similarily to PUSH. However, it doesn't, PUSH is a macro, delete is a function.
Anonymous 01/05/25(Sun)07:24:34 No.103765228
>>103765025
This is the latest issue on openzfs.
https://archive.is/Zg1km
Am I reading it right that it's enough to just "guix install openzfs"?
This is the latest issue on openzfs.
https://archive.is/Zg1km
Am I reading it right that it's enough to just "guix install openzfs"?
Anonymous 01/05/25(Sun)09:01:54 No.103765723
>>103765025
>>103765228
if zfs is not your root filesystem there shouldn't be any problem, you might want to write some services to handle importing and mounting.
for encryption and lvm see mapped devices and bootloader configuration in the manual (especially extra-initrd if you don't want to write your passphrase twice)
>>103765228
if zfs is not your root filesystem there shouldn't be any problem, you might want to write some services to handle importing and mounting.
for encryption and lvm see mapped devices and bootloader configuration in the manual (especially extra-initrd if you don't want to write your passphrase twice)
Anonymous 01/05/25(Sun)10:09:29 No.103766232
Do you use Nix to manage Emacs' native dependencies, like this guy? https://www.youtube.com/watch?v=nEmRr1j8LR0
Anonymous 01/05/25(Sun)10:36:08 No.103766440
>>103765723
Thanks anon, that's a little more reassuring. With regards to encrypting the boot drive, I'll probably just leave /boot unencrypted rather than relying on a possibly slow BIOS (like with my laptop) to spend several seconds opening the drive after typing in the password.
Thanks anon, that's a little more reassuring. With regards to encrypting the boot drive, I'll probably just leave /boot unencrypted rather than relying on a possibly slow BIOS (like with my laptop) to spend several seconds opening the drive after typing in the password.
Anonymous 01/05/25(Sun)10:37:22 No.103766448
Scheme!
Anonymous 01/05/25(Sun)11:07:14 No.103766678
>>103763247
See the help: C-h f delete.
The short version is that `delete' is just a potentially destructive version of `remove' that can modify its argument as an optimization, but you shouldn't rely on it. Instead, do
See the help: C-h f delete.
The short version is that `delete' is just a potentially destructive version of `remove' that can modify its argument as an optimization, but you shouldn't rely on it. Instead, do
(setq my-list (delete "." my-list))
Anonymous 01/05/25(Sun)11:09:01 No.103766694
>>103764260
No, but it's the most commonly used. Professional Common Lisp devs seem to mostly use Sly these days.
No, but it's the most commonly used. Professional Common Lisp devs seem to mostly use Sly these days.
Anonymous 01/05/25(Sun)11:23:11 No.103766814
Anonymous 01/05/25(Sun)11:30:44 No.103766869
>>103763247
The confusion was introduced when the substitution model of evaluation was violated
The confusion was introduced when the substitution model of evaluation was violated
Anonymous 01/05/25(Sun)12:50:41 No.103767679
>>103766814
Not that anon and not a ZFS user, but do you even need /boot if you use a modern setup like systemd-boot under UEFI?
Not that anon and not a ZFS user, but do you even need /boot if you use a modern setup like systemd-boot under UEFI?
Anonymous 01/05/25(Sun)15:52:25 No.103769532
>>103765209
>>103766678
Thank you for clarifying. As you said, I should have used
I still think this behavior is strange, but at least I can use setq to update a list consistently.
>>103766678
Thank you for clarifying. As you said, I should have used
(setq hi (delete "." hi))to update the value of hi instead of relying on a side effect. In my original post, I thought delete was removing the element "." (and updating the value of hi) and then adding it back to hi. I realize now that
(delete "." hi)did not update the value of hi. However, it looks like delete DOES update the value of a list if I choose an element other than the first element.
(setq ha '(1 2 3))
(1 2 3)
(delete 1 ha)
(2 3)
ha
(1 2 3) ;; ha is not updated
(delete 2 ha)
(1 3)
ha
(1 3) ;; ha IS updated
(delete 3 ha)
(1)
ha
(1) ;; ha is updated again
(delete 1 ha)
nil
ha
(1) ;; ha is still not updated
(setq ha (cons 0 ha))
(0 1)
(delete 1 ha)
(0)
ha
(0) ;; ha is updated again, likely because 1 was no longer the first element
I still think this behavior is strange, but at least I can use setq to update a list consistently.
Anonymous 01/05/25(Sun)18:24:14 No.103770926
(global-set-key (kbd "[") "(")
(global-set-key (kbd "]") ")")
Anonymous 01/05/25(Sun)18:28:28 No.103770958
>>103769532
>I still think this behavior is strange
I suspect it's for consistency with `remove'. The kind of `delete' you want is very easy to make with a macro, but then it would be less consistent.
>I still think this behavior is strange
I suspect it's for consistency with `remove'. The kind of `delete' you want is very easy to make with a macro, but then it would be less consistent.
Anonymous 01/05/25(Sun)22:06:55 No.103772936
>>103763228
That'd be great, I think a great project is making your own emacs IDE config, no imports, no external packages, all coded by you.
That'd be great, I think a great project is making your own emacs IDE config, no imports, no external packages, all coded by you.
Anonymous 01/05/25(Sun)23:01:09 No.103773358
>lamda is macro
>` (backquote)? That's a macro too.
>Emacs stands for Editor Macros. It's macros all the way down.
>` (backquote)? That's a macro too.
>Emacs stands for Editor Macros. It's macros all the way down.
Anonymous 01/06/25(Mon)02:32:47 No.103774903
>>103773358
Everything is a MACRO.
Everything is a MACRO.
Anonymous 01/06/25(Mon)03:02:48 No.103775092
Anonymous 01/06/25(Mon)05:53:13 No.103776119
Anonymous 01/06/25(Mon)07:02:35 No.103776667
Whats the function of the '\\' at the end of the 'CLOSING NOTE' line?
Org mode automatically adds this when I close notes.
My org-log-note-headings variable hasn't been changed, and the part relevant to the closing note is this:
Org mode automatically adds this when I close notes.
My org-log-note-headings variable hasn't been changed, and the part relevant to the closing note is this:
(done . "CLOSING NOTE %t")
Anonymous 01/06/25(Mon)09:21:19 No.103777996
>>103766814
That's a lot. I'll be using an install image from SystemCrafters to install the system, so I'd hope going through manual partitioning there would be easier. I might cower out and just select guided full disk encryption option though. Unlike my laptop, the fileserver will be running 24/7, so I guess I can survive the inconvenience of not having an unencrypted /boot partition.
That's a lot. I'll be using an install image from SystemCrafters to install the system, so I'd hope going through manual partitioning there would be easier. I might cower out and just select guided full disk encryption option though. Unlike my laptop, the fileserver will be running 24/7, so I guess I can survive the inconvenience of not having an unencrypted /boot partition.
Anonymous 01/06/25(Mon)12:37:37 No.103780250
>The combination of Clojure and the JVM allows for better performance of dynamically typed programs.
https://www.wedesoft.de/software/2024/12/26/clojure-ruby-python-performance/
https://www.wedesoft.de/software/20
Anonymous 01/06/25(Mon)14:45:48 No.103782340
>>103776119
ribosomecompiler :-)
ribosomecompiler :-)
Anonymous 01/06/25(Mon)16:54:27 No.103784375
When you use pdf-view-mode, how do you get emacs to remember where you last left off reading?
Anonymous 01/06/25(Mon)16:57:47 No.103784425
>>103784375
Nevermind. It's saveplace-pdf-view
Nevermind. It's saveplace-pdf-view
Anonymous 01/06/25(Mon)17:14:28 No.103784654
Emacs noob here. I'm using evil mode and general.el to handle leader key functions. Can anyone explain why keys defined through general don't work in all buffers (e.g. the *apropos* buffer) and/or what I can do to make them work?
Anonymous 01/06/25(Mon)17:23:57 No.103784792
>>103769532
>However, it looks like delete DOES update the value of a list if I choose an element other than the first element
Because it cannot just skip elements. If you have a list '(1 2) and you delete 2, then delete will essentially do this:
You need to understand how lists work. They are chained cons cels, and if you have a reference to a list, that reference points to the head of the list. You *could* (but shouldn't) rely on the side effect of DELETE if (and only if) the head of the list does not change.
In these cases DELETE returns the same head and the same cons cell instance. However, if you delete the first element, then the cons cell instance is a different one. DELETE obviously has no way to update your existing variable with the new head of the list.
>However, it looks like delete DOES update the value of a list if I choose an element other than the first element
Because it cannot just skip elements. If you have a list '(1 2) and you delete 2, then delete will essentially do this:
(setf (cdr list) nil)
You need to understand how lists work. They are chained cons cels, and if you have a reference to a list, that reference points to the head of the list. You *could* (but shouldn't) rely on the side effect of DELETE if (and only if) the head of the list does not change.
In these cases DELETE returns the same head and the same cons cell instance. However, if you delete the first element, then the cons cell instance is a different one. DELETE obviously has no way to update your existing variable with the new head of the list.
Anonymous 01/06/25(Mon)17:41:24 No.103785015
>>103784654
>evil mode and general.el
I use neither of them. But you can define it like this (define-key apropos-mode-map-or-whatever-it-is-called (kbd "C-u C-k") 'your-function))
>evil mode and general.el
I use neither of them. But you can define it like this (define-key apropos-mode-map-or-whatever-it-is-
Anonymous 01/06/25(Mon)20:16:32 No.103786875
think I am going to try Clojure, been using Elixir.
most of my problems are not IO bound, hence the JVM will likely be a greater candidate for their solutions.
my only concern is in the fault tolerance. the BEAM is very stringent about true lack of sharing amongst processes, which means dirty state is never an issue upon process crashes.
AHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
most of my problems are not IO bound, hence the JVM will likely be a greater candidate for their solutions.
my only concern is in the fault tolerance. the BEAM is very stringent about true lack of sharing amongst processes, which means dirty state is never an issue upon process crashes.
AHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
Anonymous 01/06/25(Mon)23:00:57 No.103790840
Anonymous 01/07/25(Tue)01:39:07 No.103793531
>>103766869
SUS
SUS
Anonymous 01/07/25(Tue)02:00:43 No.103793754
>>103766869
supposing there are no mutation, when is the substitution model broken exactly?
supposing there are no mutation, when is the substitution model broken exactly?
Anonymous 01/07/25(Tue)04:19:30 No.103794841
>>103786875
how the FUCK do I run tests in `test/some-file_test.clj`? I do NOT want to install a 3rd party test runner, or Leinengen
how the FUCK do I run tests in `test/some-file_test.clj`? I do NOT want to install a 3rd party test runner, or Leinengen
Anonymous 01/07/25(Tue)04:20:12 No.103794848
>>103776667
I've never seen that, and I can't reproduce it. Does it happen when you run `emacs -Q` too?
I've never seen that, and I can't reproduce it. Does it happen when you run `emacs -Q` too?
Anonymous 01/07/25(Tue)04:23:42 No.103794873
>>103784654
>>103785015
Emacs has a million modes, and when you're using evil+general.el, you're going to have to explicitly tell emacs what you want at times.
https://github.com/noctuid/general.el?tab=readme-ov-file#evil-examples
Notice how some of the examples specify mode maps.
>>103785015
Emacs has a million modes, and when you're using evil+general.el, you're going to have to explicitly tell emacs what you want at times.
https://github.com/noctuid/general.
Notice how some of the examples specify mode maps.
Anonymous 01/07/25(Tue)08:05:26 No.103796617
Anonymous 01/07/25(Tue)10:59:14 No.103798300
>>103794841
Which editor are you using? Is your REPL connected to it?
>>103786875
What exactly are you trying to solve?
Which editor are you using? Is your REPL connected to it?
>>103786875
What exactly are you trying to solve?
Anonymous 01/07/25(Tue)12:37:43 No.103799633
>>103794841
https://clojuredocs.org/clojure.test/run-tests
https://clojuredocs.org/clojure.test/run-all-tests
https://x.com/noco3n_com/status/1875829688096190932
https://clojuredocs.org/clojure.tes
https://clojuredocs.org/clojure.tes
https://x.com/noco3n_com/status/187
Anonymous 01/07/25(Tue)14:03:22 No.103800649
>>103786875
Weed and alcohol are poor substitutes for _______________.
Weed and alcohol are poor substitutes for _______________.
Anonymous 01/07/25(Tue)14:21:43 No.103800863
>>103794848
Just tested with 'emacs -Q' and it still happens.
I use '(setq org-log-done 'note) then change a TODO -> DONE. It then prompts me for the note. If I just the note area empty and press C-c C-c, the CLOSING NOTE doesn't have the '\\'.
If I enter any text, it adds the '\\'.
I'm on Emacs 29.4.
Just tested with 'emacs -Q' and it still happens.
I use '(setq org-log-done 'note) then change a TODO -> DONE. It then prompts me for the note. If I just the note area empty and press C-c C-c, the CLOSING NOTE doesn't have the '\\'.
If I enter any text, it adds the '\\'.
I'm on Emacs 29.4.
Anonymous 01/07/25(Tue)14:46:15 No.103801174
This type of stack gc https://www.newlisp.org/MemoryManagement.html seems pretty simple. Each call to eval places the result on a stack, which is unwound when eval returns. I'm going to try adding it to my lisp (which has no gc rn) maybe other anons will find it helpful
Anonymous 01/07/25(Tue)14:58:34 No.103801308
Which companies or job boards targets interested Lisp programmers like thy?
Anonymous 01/07/25(Tue)15:19:25 No.103801580
>>103793754
If this language is pure, the compiler can freely substitute y = 1 + 2 with no further information. If the language were impure, the compiler would need to analyze f to know if it assigns new values to the fields of r, it isn't free to substitute a, b, r.x, and r.y for the values 1 and 2 in the scope of those variables without further information
a = 1
b = 2
r = { a, b }
x = f(r)
y = r.x + r.y
If this language is pure, the compiler can freely substitute y = 1 + 2 with no further information. If the language were impure, the compiler would need to analyze f to know if it assigns new values to the fields of r, it isn't free to substitute a, b, r.x, and r.y for the values 1 and 2 in the scope of those variables without further information
Anonymous 01/07/25(Tue)15:36:59 No.103801758
>>103766232
Not you or not a Guix user, but I really want to get into it.
I wonder if guix has something as complete as Nix home.
Not you or not a Guix user, but I really want to get into it.
I wonder if guix has something as complete as Nix home.
Anonymous 01/07/25(Tue)15:41:13 No.103801800
>>103780250
Now just need Jank to beat Rust and the age of functional is ushered.
Now just need Jank to beat Rust and the age of functional is ushered.
Anonymous 01/07/25(Tue)15:44:04 No.103801835
>>103801308
You aren't gonna get a Lisp job unless your extremely knowledgable about in quantum computing, 3D modeling, expert systems, etc. at which point you won't need to search for a job they'll come to you.
You aren't gonna get a Lisp job unless your extremely knowledgable about in quantum computing, 3D modeling, expert systems, etc. at which point you won't need to search for a job they'll come to you.
Anonymous 01/07/25(Tue)16:57:34 No.103802598
>>103790840
Elixir/Erlang/Lisp Flavored Erlang all run on the BEAM virtual machine, which is very autistic about its "share nothing amongst concurrent processes" policy, which leads to very unique features like a garbage collector that never has to pause the world. it is optimized for low-latency environments where resources might exist in different zip codes and where machines might crash due to uncontrollable side effects such as weapons strikes and shit.
buttttttt, most software does not need that. and, to be frank, I think a better model than Erlang's can be achieved, and building it on top of the JVM should be cool.
the JVM is much more generalized, so I can more optimally solve my purely algorithmic code.
>>103798300
I'm using Neovim without any editor--REPL relationship. I HATE having to configure editors, I would rather be doing anything else.
I have a lib at `lib/`.
there is `lib/src/lib.clj` and `lib/test/lib_test.clj`. there is no main in `lib.clj`, just a function I want to test from within `lib/test/lib_test.clj`. I want to have a simple script that I can call from Bash to run the tests.
Elixir/Erlang/Lisp Flavored Erlang all run on the BEAM virtual machine, which is very autistic about its "share nothing amongst concurrent processes" policy, which leads to very unique features like a garbage collector that never has to pause the world. it is optimized for low-latency environments where resources might exist in different zip codes and where machines might crash due to uncontrollable side effects such as weapons strikes and shit.
buttttttt, most software does not need that. and, to be frank, I think a better model than Erlang's can be achieved, and building it on top of the JVM should be cool.
the JVM is much more generalized, so I can more optimally solve my purely algorithmic code.
>>103798300
I'm using Neovim without any editor--REPL relationship. I HATE having to configure editors, I would rather be doing anything else.
I have a lib at `lib/`.
there is `lib/src/lib.clj` and `lib/test/lib_test.clj`. there is no main in `lib.clj`, just a function I want to test from within `lib/test/lib_test.clj`. I want to have a simple script that I can call from Bash to run the tests.
Anonymous 01/07/25(Tue)19:20:14 No.103804283
Anonymous 01/07/25(Tue)19:37:13 No.103804497
I really wish lisp had webdev.
I hate webdev, but it's what pay the bills.
I hate webdev, but it's what pay the bills.
Anonymous 01/07/25(Tue)20:04:41 No.103804717
>>103802598
Much of the Clojure dev tooling expects you to be running a repl session. This includes debuggers, profilers etc.
Setting up Conjure (or vscode+calva) and Neil would've taken you less time than writing that post, not to mention waiting for replies.
>I want to have a simple script that I can call from Bash to run the tests
That's the kind of stuff that Neil or Leiningen make easy to set up:
https://blog.michielborkent.nl/new-clojure-project-quickstart.html
>I HATE having to configure editors, I would rather be doing anything else.
I get that, but I rather spend 5 minutes setting up parinfer than waste hours counting parentheses.
Much of the Clojure dev tooling expects you to be running a repl session. This includes debuggers, profilers etc.
Setting up Conjure (or vscode+calva) and Neil would've taken you less time than writing that post, not to mention waiting for replies.
>I want to have a simple script that I can call from Bash to run the tests
That's the kind of stuff that Neil or Leiningen make easy to set up:
https://blog.michielborkent.nl/new-
>I HATE having to configure editors, I would rather be doing anything else.
I get that, but I rather spend 5 minutes setting up parinfer than waste hours counting parentheses.
Anonymous 01/07/25(Tue)20:51:26 No.103805124
>>103796617
(add-hook 'pdf-view-mode-hook 'pdf-view-themed-minor-mode)
(add-hook 'pdf-view-mode-hook 'pdf-view-fit-height-to-window)
Anonymous 01/07/25(Tue)22:33:09 No.103806107
>>103758091
>Do any of you use org-noter with org-roam?
A few months ago, they added a new function:
org-noter-enable-org-roam-integration
https://github.com/org-noter/org-noter/pull/90
It looks like maintainership changed in 2023, but I didn't know that until yesterday when I looked into it.
https://github.com/weirdNox/org-noter/issues/173
https://github.com/melpa/melpa/issues/8413
>Do any of you use org-noter with org-roam?
A few months ago, they added a new function:
org-noter-enable-org-roam-integrati
https://github.com/org-noter/org-no
It looks like maintainership changed in 2023, but I didn't know that until yesterday when I looked into it.
https://github.com/weirdNox/org-not
https://github.com/melpa/melpa/issu
Anonymous 01/08/25(Wed)00:08:12 No.103806970
>>103804497
Clojurescript
Clojurescript
Anonymous 01/08/25(Wed)00:35:57 No.103807231
>>103804497
Is caveman not enough?
Is caveman not enough?
Anonymous 01/08/25(Wed)02:13:00 No.103807922
Anonymous 01/08/25(Wed)03:31:54 No.103808396
>>103802598
Your misery is self inflicted. Clojure pretty much expects you to have a running REPL and to connect your editor to it.
Every Clojure integration has a shortcut to "run test under cursor" or "run all tests in file". It's also run from the REPL and you get meaningful structured output.
Use the damn REPL and connect your editor to it. If you want to turn your brain off and just drive use Spacemacs, this is how I configured it, you'll need nothing else:
Your misery is self inflicted. Clojure pretty much expects you to have a running REPL and to connect your editor to it.
Every Clojure integration has a shortcut to "run test under cursor" or "run all tests in file". It's also run from the REPL and you get meaningful structured output.
Use the damn REPL and connect your editor to it. If you want to turn your brain off and just drive use Spacemacs, this is how I configured it, you'll need nothing else:
(clojure :variables
clojure-enable-linters '(clj-kondo)
clojure-backend 'cider
clojure-enable-clj-refactor t
clojure-enable-fancify-symbols t
cider-enrich-classpath t
cider-enable-nrepl-jvmti-agent t
)
Anonymous 01/08/25(Wed)04:09:37 No.103808646
>>103785015
>>103794873
Thanks for the replies. I have a non-solution for anyone interested:
Note the :keymaps macro commented out, that's what was causing the problem for the most part. This still doesn't work in Apropos buffers, though.
>>103794873
Thanks for the replies. I have a non-solution for anyone interested:
(general-create-definer my/leader-keys
:states '(normal insert visual emacs)
; :keymaps 'override
:prefix "SPC"
:global-prefix "M-SPC"
)
(my/leader-keys
"b" '(:ignore t :wk "buffer")
"b k" '(kill-this-buffer :wk "kill buffer")
)
Note the :keymaps macro commented out, that's what was causing the problem for the most part. This still doesn't work in Apropos buffers, though.
Anonymous 01/08/25(Wed)04:50:33 No.103808940
>>103804717
>>103808396
got it all running bros. just installed Leiningen and called it a day. deps.edn sounds cool until you realize you need to import a 3rd party test runner, which Leiningen does on its own.
yes, yes, one day I will set up my editor properly. too lazy to now tho, I got my tests running hehe
>>103808396
got it all running bros. just installed Leiningen and called it a day. deps.edn sounds cool until you realize you need to import a 3rd party test runner, which Leiningen does on its own.
yes, yes, one day I will set up my editor properly. too lazy to now tho, I got my tests running hehe
Anonymous 01/08/25(Wed)06:23:48 No.103809570
>>103808940
Anon, you are a strong headed retard
Anon, you are a strong headed retard
Anonymous 01/08/25(Wed)06:41:14 No.103809703
>>103809570
lmao don't care
I think I am going to write a macro that you call like `(guard-against (== some-input 42))` which does `(throw (ex-info "(== some-input 42)" {:some-input "actual value at time of error"}))`
pre and post conditions are cool but not intended to be used for error checking, only asserting developer assumptions when not in prod
lmao don't care
I think I am going to write a macro that you call like `(guard-against (== some-input 42))` which does `(throw (ex-info "(== some-input 42)" {:some-input "actual value at time of error"}))`
pre and post conditions are cool but not intended to be used for error checking, only asserting developer assumptions when not in prod
Anonymous 01/08/25(Wed)07:26:23 No.103810064
>>103804497
If you aren't opposed to commercial Lisps they are very capable for webdev stuff. Otherwise the increasingly popular paradigm of generating HTML and delivering it to clients by SSE is a very, very good fit for CL.
If you aren't opposed to commercial Lisps they are very capable for webdev stuff. Otherwise the increasingly popular paradigm of generating HTML and delivering it to clients by SSE is a very, very good fit for CL.
Anonymous 01/08/25(Wed)08:04:44 No.103810360
>fresh guix install
>didn't select any DE in graphical installer
>no xorg stuff in the services part of the installer config.scm which I edited
>gdm, wayland, gnome-shell, gnome-desktop, showed up in reconfigure, etc
>greeted with login screen on startup, but logging in just throws you back to the login screen
What the hell is his problem?
>didn't select any DE in graphical installer
>no xorg stuff in the services part of the installer config.scm which I edited
>gdm, wayland, gnome-shell, gnome-desktop, showed up in reconfigure, etc
>greeted with login screen on startup, but logging in just throws you back to the login screen
What the hell is his problem?
Anonymous 01/08/25(Wed)08:19:26 No.103810509
do you have clojure ->> in your lisps?
Anonymous 01/08/25(Wed)09:12:57 No.103811039
>>103809703
just use malli
just use malli
Anonymous 01/08/25(Wed)09:39:14 No.103811320
>>103810509
emacs has had them since version 25.1.
https://endlessparentheses.com/new-in-emacs-25-1-more-flow-control-macros.html
emacs has had them since version 25.1.
https://endlessparentheses.com/new-
Anonymous 01/08/25(Wed)10:10:41 No.103811631
>>103810360
%desktop-services comes with gdm and pulls in gnome dependencies but doesn't install the gnome desktop service itself
change it to %base-services from (gnu services base) to get rid of that
%desktop-services comes with gdm and pulls in gnome dependencies but doesn't install the gnome desktop service itself
change it to %base-services from (gnu services base) to get rid of that
Anonymous 01/08/25(Wed)10:11:31 No.103811640
>>103808646
>This still doesn't work in Apropos buffers, though.
I use evil+general, but I don't use apropos that much. However, I tried it out for you, and the apropos buffers are not giving me any trouble at all.
What I tried:
- M-x apropos "thread"
- Emacs gave me an *Apropos* buffer with functions with the word "thread" in their name.
- I hit `z m` to fold everything.
- I can scroll up and down with vi movements via evil.
- I hit `SPC` and wait a second for which-key to display the first level of my leader key mappings.
It is about as well-behaved as I could expect. I wonder now if you're also using evil-collection? I am, and I'm wondering if it made apropos-mode well-behaved for me without my knowing.
https://github.com/emacs-evil/evil-collection
(Search for "TLDR".)
>This still doesn't work in Apropos buffers, though.
I use evil+general, but I don't use apropos that much. However, I tried it out for you, and the apropos buffers are not giving me any trouble at all.
What I tried:
- M-x apropos "thread"
- Emacs gave me an *Apropos* buffer with functions with the word "thread" in their name.
- I hit `z m` to fold everything.
- I can scroll up and down with vi movements via evil.
- I hit `SPC` and wait a second for which-key to display the first level of my leader key mappings.
It is about as well-behaved as I could expect. I wonder now if you're also using evil-collection? I am, and I'm wondering if it made apropos-mode well-behaved for me without my knowing.
https://github.com/emacs-evil/evil-
(Search for "TLDR".)
Anonymous 01/08/25(Wed)10:12:19 No.103811646
Symbol's value as variable is void: tramp-remote-path "tramp"
What's up with my emacs v29.4?
Anonymous 01/08/25(Wed)10:12:42 No.103811649
>>103811646
What did you do to trigger that?
What did you do to trigger that?
Anonymous 01/08/25(Wed)10:14:34 No.103811670
>>103811646
What does `C-h v tramp-remote-path` say? For me, it's:
What does `C-h v tramp-remote-path` say? For me, it's:
tramp-remote-path is a variable defined in ‘tramp.el’.
Its value is
(tramp-default-remote-path "/bin" "/usr/bin" "/sbin" "/usr/sbin"
"/usr/local/bin" "/usr/local/sbin"
"/local/bin" "/local/freeware/bin"
"/local/gnu/bin" "/usr/freeware/bin"
"/usr/pkg/bin" "/usr/contrib/bin"
"/opt/bin" "/opt/sbin" "/opt/local/bin"
"/opt/homebrew/bin" "/opt/homebrew/sbin")
Anonymous 01/08/25(Wed)10:16:30 No.103811691
>>103811649
Simply tried putting this in my init.el.
Tramp itself has been working otherwise.
Simply tried putting this in my init.el.
(add-to-list 'tramp-remote-path 'tramp-own-remote-path)
Tramp itself has been working otherwise.
Anonymous 01/08/25(Wed)10:19:20 No.103811716
>>103811670
There's a bunch of paths like with yours, except the homebrew ones.
There's a bunch of paths like with yours, except the homebrew ones.
Anonymous 01/08/25(Wed)10:26:03 No.103811783
>>103811691
I found that same line in the Tramp info pages. That should be harmless.
(info "(tramp) Remote programs")
>>103811716
I don't know what else to say. It doesn't seem like you're doing anything wrong or weird.
I found that same line in the Tramp info pages. That should be harmless.
(info "(tramp) Remote programs")
>>103811716
I don't know what else to say. It doesn't seem like you're doing anything wrong or weird.
Anonymous 01/08/25(Wed)10:29:51 No.103811834
>>103811783
I'm actually trying to get tramp to work with my remote guix system. Tried setting the variable using customize whatever it is, but after applying, saving, and restarting emacs, these paths didn't help me: "/run/current-system/profile/bin", "/home/user/.config/guix/current".
I'm actually trying to get tramp to work with my remote guix system. Tried setting the variable using customize whatever it is, but after applying, saving, and restarting emacs, these paths didn't help me: "/run/current-system/profile/bin", "/home/user/.config/guix/current".
Anonymous 01/08/25(Wed)10:31:38 No.103811854
yeah your mistake was using guix
Anonymous 01/08/25(Wed)10:33:10 No.103811872
>>103811854
Only the remote system is guix. Tramp works for other servers.
Only the remote system is guix. Tramp works for other servers.
Anonymous 01/08/25(Wed)11:02:21 No.103812257
>>103811039
Don't waste your time. He's doing it because he's trying to develop statically without a running REPL and wants guards to catch his mistakes instead of having a fast feedback loop
Don't waste your time. He's doing it because he's trying to develop statically without a running REPL and wants guards to catch his mistakes instead of having a fast feedback loop
Anonymous 01/08/25(Wed)11:47:22 No.103812792
>>103812257
99% of my time "cooding" is actually pacing my room back and forth
I also go through problems manually on paper quite often
I almost never write a function and want to play with it in a REPL. I would much rather write a test case. takes the same amount of time basically, and is persisted into your editor for easier manipulation.
if I want a REPL, it is generally for back of the hand calculations, or quick experiments directly with functions you plan to use, and do not understand fully. it is quite likely that you understand the code you have written, hence if you plan to use it, just use it.
99% of my time "cooding" is actually pacing my room back and forth
I also go through problems manually on paper quite often
I almost never write a function and want to play with it in a REPL. I would much rather write a test case. takes the same amount of time basically, and is persisted into your editor for easier manipulation.
if I want a REPL, it is generally for back of the hand calculations, or quick experiments directly with functions you plan to use, and do not understand fully. it is quite likely that you understand the code you have written, hence if you plan to use it, just use it.
Anonymous 01/08/25(Wed)12:22:37 No.103813183
Anonymous 01/08/25(Wed)12:32:04 No.103813310
>>103812792
>and is persisted into your editor for easier manipulation
...what do you think why we set up repl connections in our editors?
>and is persisted into your editor for easier manipulation
...what do you think why we set up repl connections in our editors?
Anonymous 01/08/25(Wed)12:49:41 No.103813565
>>103813310
I literally have zero use for that. I will write 150 lines, sometimes over the course of several days, before I even try running my code
my REPL is perfectly fine not belonging to my editor
I literally have zero use for that. I will write 150 lines, sometimes over the course of several days, before I even try running my code
my REPL is perfectly fine not belonging to my editor
Anonymous 01/08/25(Wed)13:13:51 No.103813904
>>103811640
I was using evil-collection, but I didn't have it enabled for apropos mode. That did the trick. Thanks!
I was using evil-collection, but I didn't have it enabled for apropos mode. That did the trick. Thanks!
Anonymous 01/08/25(Wed)13:32:03 No.103814171
>>103810360
If I remember it right, months ago when I tried it with KDE (which is not enabled by default in the installer and you need to edit the script), it also did that.
If I remember it right, months ago when I tried it with KDE (which is not enabled by default in the installer and you need to edit the script), it also did that.
Anonymous 01/08/25(Wed)14:27:00 No.103814985
Anonymous 01/08/25(Wed)14:40:33 No.103815129
>>103813904
Great. I'm glad you found a solution.
Great. I'm glad you found a solution.
Anonymous 01/08/25(Wed)14:48:04 No.103815227
>>103814985
I doubt this very much
I was enjoying Elixir a lot, which also is without static types.
I will not use a language that compiles to machine code, only a virtual machine.
I doubt this very much
I was enjoying Elixir a lot, which also is without static types.
I will not use a language that compiles to machine code, only a virtual machine.
Anonymous 01/08/25(Wed)17:20:44 No.103817318
Anonymous 01/08/25(Wed)17:38:12 No.103817545
Anonymous 01/08/25(Wed)17:42:29 No.103817621
>>103817318
- Developing in Elisp is a better developer experience than trying to code in VimScript or Lua.
- My dedication to Christ might surprise you.
- Developing in Elisp is a better developer experience than trying to code in VimScript or Lua.
- My dedication to Christ might surprise you.
Anonymous 01/08/25(Wed)17:45:34 No.103817661
Anonymous 01/08/25(Wed)17:47:10 No.103817678
Anonymous 01/08/25(Wed)17:48:09 No.103817694
Anonymous 01/08/25(Wed)18:01:54 No.103817865
>>103817318
It's cat > file for me
It's cat > file for me
Anonymous 01/08/25(Wed)18:51:46 No.103818386
>>103817318
VIMasonry is developed on Bill Gates’s Microꜱoyft GitHub (https://github.com/vim/vim). (((Coincidence)))? No. (((VIMoloch))) is a cursed MSatanic 666 tool developed against the Holy Church of Emacs. Don't forget, (You) can't spell 'devil' without "VI"!
>Sinners — Insist on using devil's software, believing that it is of superior quality.
>Devils — Creating NDAs and proprietary software licenses to entangle humanity in their net.
>Evil Empire: Microsoft
>Lucifer: Bill Gates
https://www.gnu.org/fun/jokes/gospel.html
VIMasonry is developed on Bill Gates’s Microꜱoyft GitHub (https://github.com/vim/vim). (((Coincidence)))? No. (((VIMoloch))) is a cursed MSatanic 666 tool developed against the Holy Church of Emacs. Don't forget, (You) can't spell 'devil' without "VI"!
>Sinners — Insist on using devil's software, believing that it is of superior quality.
>Devils — Creating NDAs and proprietary software licenses to entangle humanity in their net.
>Evil Empire: Microsoft
>Lucifer: Bill Gates
https://www.gnu.org/fun/jokes/gospe
Anonymous 01/08/25(Wed)19:01:59 No.103818502
Anonymous 01/08/25(Wed)19:06:57 No.103818573
Anonymous 01/08/25(Wed)19:18:28 No.103818708
>>103812257
Fast feedback loops are overrated. Testing and static reasoning catch a broader class of errors, especially when pacing around the room generates better ideas. REPLs are fine for quick prototyping, but some devs just operate better with a more deliberate approach.
Fast feedback loops are overrated. Testing and static reasoning catch a broader class of errors, especially when pacing around the room generates better ideas. REPLs are fine for quick prototyping, but some devs just operate better with a more deliberate approach.
Anonymous 01/08/25(Wed)19:33:44 No.103818853
Anonymous 01/08/25(Wed)19:44:38 No.103818983
I'm trying to learn lisp but I keep quitting after getting frustrated that Portacle doesn't persist my font size preferences between launches. A bunch of people have raised issues on the project's github and the developer refers them all back to the same non-solution she gave when it first came up, and closes them.
Anonymous 01/08/25(Wed)19:48:28 No.103819031
>>103818983
Do SBCL on Linux or go Clojure.
Do SBCL on Linux or go Clojure.
Anonymous 01/08/25(Wed)20:01:34 No.103819204
>>103818983
Poortacle is dead abandonware.
Try Lem -> https://lem-project.github.io
Or other editors -> https://lispcookbook.github.io/cl-cookbook/editor-support.html
Poortacle is dead abandonware.
Try Lem -> https://lem-project.github.io
Or other editors -> https://lispcookbook.github.io/cl-c
Anonymous 01/08/25(Wed)20:03:17 No.103819219
>>103818983
>Portacle
Hopefully, these aren't famous last words, but it's just another curated Emacs configuration. We know how to change fonts and sizes in pure Elisp. How hard can this be? I will try and report back.
>Portacle
Hopefully, these aren't famous last words, but it's just another curated Emacs configuration. We know how to change fonts and sizes in pure Elisp. How hard can this be? I will try and report back.
Anonymous 01/08/25(Wed)20:14:22 No.103819345
>>103819219
Oh man, Portacle is based on Emacs 26.3. The current stable release of Emacs is 29.4. I wouldn't use this.
Oh man, Portacle is based on Emacs 26.3. The current stable release of Emacs is 29.4. I wouldn't use this.
Anonymous 01/08/25(Wed)20:41:03 No.103819666
>>103819031
>>103819204
>>103819345
Thanks for the info. I was also using MIT Scheme in a terminal REPL to go through Sussman's SDF book but it's not that interesting. And I read that Common Lisp makes some practical macro-related things easier than Scheme because it has less of a purist approach or something.
>>103819204
>>103819345
Thanks for the info. I was also using MIT Scheme in a terminal REPL to go through Sussman's SDF book but it's not that interesting. And I read that Common Lisp makes some practical macro-related things easier than Scheme because it has less of a purist approach or something.
Anonymous 01/08/25(Wed)20:51:01 No.103819749
>>103818983
>Portacle doesn't persist my font size preferences between launches.
I found a way, but he did not make it easy.
I first tried the obvious thing which was to edit config/user.el and add a bit of elisp to change the font size. The code seemed to run, but it was overridden at some later point.
The second thing I tried was to find where *HE* set the font, and it was in:
all/emacsd/portacle/portacle-window.el
- Where it says 18 is the size. I think it was originally 12 or 14. Just change that to whatever size you want.
- THEN, `M-x byte-force-recompile` and hit enter to recompile the whole directory.
- The next time you start portacle, that'll be your font size.
>Portacle doesn't persist my font size preferences between launches.
I found a way, but he did not make it easy.
I first tried the obvious thing which was to edit config/user.el and add a bit of elisp to change the font size. The code seemed to run, but it was overridden at some later point.
The second thing I tried was to find where *HE* set the font, and it was in:
all/emacsd/portacle/portacle-window
(add-to-list 'default-frame-alist
'(font . "-GOOG-Noto Mono-normal-normal-normal-*-18-*-*-*-m-0-iso10646-1"))
- Where it says 18 is the size. I think it was originally 12 or 14. Just change that to whatever size you want.
- THEN, `M-x byte-force-recompile` and hit enter to recompile the whole directory.
- The next time you start portacle, that'll be your font size.
Anonymous 01/08/25(Wed)20:56:29 No.103819820
>>103819666
I'm not saying don't use Common Lisp. I was just saying Portacle was using an ancient Emacs, and that's the part I didn't like.
I'm not saying don't use Common Lisp. I was just saying Portacle was using an ancient Emacs, and that's the part I didn't like.
Anonymous 01/08/25(Wed)21:53:02 No.103820277
I have become very accustomed and comfortable with vim bindings and modal editing, and have tried switching over to emacs using evil / doom / spacemacs in the past, each time making it more my own config.
Recently I have tried making it truly my own config from scratch without evil / vim bindings at all, and have run through the tutorial a lot the past few days to try and get the hang of it. But I am kind of annoyed with not having modal editing, and how awkward some of the bindings are. I'm thinking of trying MEOW since it doesn't take away from the emacs bindings afaik. Any advice? Is it worth it to quit modal editing / vim stuff cold turkey?
Recently I have tried making it truly my own config from scratch without evil / vim bindings at all, and have run through the tutorial a lot the past few days to try and get the hang of it. But I am kind of annoyed with not having modal editing, and how awkward some of the bindings are. I'm thinking of trying MEOW since it doesn't take away from the emacs bindings afaik. Any advice? Is it worth it to quit modal editing / vim stuff cold turkey?
Anonymous 01/08/25(Wed)23:53:43 No.103821220
>>103820277
I like meow since it uses vanilla Emacs bindings through a leader key. I think it's nice but it's very minimal and coming from Vim it's gonna take a little to get used to it.
Anyways why don't you just use Evil?
I like meow since it uses vanilla Emacs bindings through a leader key. I think it's nice but it's very minimal and coming from Vim it's gonna take a little to get used to it.
Anyways why don't you just use Evil?
Anonymous 01/09/25(Thu)00:06:44 No.103821317
>>103820277
meow is good in principle, but it's quite buggy in my experience
meow is good in principle, but it's quite buggy in my experience
Anonymous 01/09/25(Thu)01:09:51 No.103821664
>>103820277
In situations where evil-collection hasn't made a compatibility layer yet, I just hit C-z to go into Emacs state. I do this a lot when I'm in `M-x tmr-tabulated-views`. When I'm done, I hit `C-z` again to switch back into evil.
https://protesilaos.com/emacs/tmr
In situations where evil-collection hasn't made a compatibility layer yet, I just hit C-z to go into Emacs state. I do this a lot when I'm in `M-x tmr-tabulated-views`. When I'm done, I hit `C-z` again to switch back into evil.
https://protesilaos.com/emacs/tmr
Anonymous 01/09/25(Thu)07:14:35 No.103823802
Anonymous 01/09/25(Thu)08:41:25 No.103824349
>>103820277
I palm press the Ctrl keys. Some other anons have talked about it here, it's really comfy.
I palm press the Ctrl keys. Some other anons have talked about it here, it's really comfy.
Anonymous 01/09/25(Thu)08:51:25 No.103824438
>>103817318
I'm new to both, but I like emacs way more. It does everything, and the keybinds make more sense. I use spacemas in holy mode, because evil mode is retarded. why bring vim bullshit over to the superior tool?
I'm new to both, but I like emacs way more. It does everything, and the keybinds make more sense. I use spacemas in holy mode, because evil mode is retarded. why bring vim bullshit over to the superior tool?
Anonymous 01/09/25(Thu)09:18:08 No.103824669
>>103820277
You don't have to stop using vim keybinding.
You don't have to stop using vim keybinding.
Anonymous 01/09/25(Thu)12:05:40 No.103826331
>>103824669
NTA but the trouble is finding a good minimal evil binding.
Seems like all there exists are very massive distros like doom or spacemacs
NTA but the trouble is finding a good minimal evil binding.
Seems like all there exists are very massive distros like doom or spacemacs
Anonymous 01/09/25(Thu)12:32:24 No.103826646
>>103826331
Just use evil + evil-collection.
Just use evil + evil-collection.
Anonymous 01/09/25(Thu)13:00:07 No.103826933
Where best to put my bash scripts in Guix? $HOME/bin? Do I do something in the home config?
Anonymous 01/09/25(Thu)15:02:20 No.103828133
Anonymous 01/09/25(Thu)15:52:34 No.103828731
* (if nil t)
NIL
Anonymous 01/09/25(Thu)15:54:47 No.103828760
>>103826933
I use a file-union kinda like this
I put this in my OS config under extra-special-files or whatever, you could probably make it the source of a package and install it properly
the #:recursive? makes the file executable, if you don't do that it doesn't add the x bit
I use a file-union kinda like this
(file-union "my-scripts"
(list
(list
"bin/foo.sh"
(local-file
(string-append (getenv "HOME") "/Source/foo.sh")
#:recursive? #t))
(list
"bin/bar"
(local-file
(string-append (getenv "HOME") "/Source/perl/bar.pl")
#:recursive? #t))))
I put this in my OS config under extra-special-files or whatever, you could probably make it the source of a package and install it properly
the #:recursive? makes the file executable, if you don't do that it doesn't add the x bit
Anonymous 01/09/25(Thu)17:14:53 No.103829775
hey do you ever go for long hikes in nature, just exploring the nature and all that?
im trying to balance it with my computing passion
im trying to balance it with my computing passion
Anonymous 01/09/25(Thu)17:43:15 No.103830080
>>103829775
I take walks around my neighborhood, but I don't hike in nature that often.
I take walks around my neighborhood, but I don't hike in nature that often.
Anonymous 01/09/25(Thu)17:45:40 No.103830106
>>103829775
yes, i alternate between running, cycling and hiking through the woods pretty much every day
yes, i alternate between running, cycling and hiking through the woods pretty much every day
Anonymous 01/09/25(Thu)20:03:44 No.103831570
>>103828760
Neat.
Neat.
Anonymous 01/09/25(Thu)21:03:02 No.103832052
Installing org-roam-ui after building up a huge org-roam database is like rediscovering your past lives.
https://github.com/org-roam/org-roam-ui
https://github.com/org-roam/org-roa
Anonymous 01/09/25(Thu)21:05:49 No.103832084
>>103832052
It's cool, but I don't use it very much, because I find it very distracting.
It's cool, but I don't use it very much, because I find it very distracting.
Anonymous 01/09/25(Thu)21:18:56 No.103832222
>>103829775
I don't like going outside much during winter, but when it's warm and not raining/snowing/hailing I do often go for long walks.
Aside from that I (try to) do calisthenics six times a week, and I also enjoy juggling (even though I'm not very good).
I don't like going outside much during winter, but when it's warm and not raining/snowing/hailing I do often go for long walks.
Aside from that I (try to) do calisthenics six times a week, and I also enjoy juggling (even though I'm not very good).
Anonymous 01/10/25(Fri)00:57:13 No.103833917
>>103832084
yeah same kind for me, it's distracting
yeah same kind for me, it's distracting
Anonymous 01/10/25(Fri)05:09:51 No.103835387
>>103828731
nil?
nil?
Anonymous 01/10/25(Fri)05:40:33 No.103835589
Hi, everyone.
I am trying to improve my org-agenda views. I am using this. Specifically the "Next view".
https://web.archive.org/web/20231209175527/https://colekillian.com/posts/getting-started-with-org-super-agenda-on-spacemacs/
I changed "org-agenda-span 'day" to "org-agenda-span 'month", so it shows the "Next view" how I want it, for the month, except the passed days. i.e. Today 10, I can't see days 9 and earlier.
I would like to see days before "today" (to see tasks that I missed and I should reschedule and so on).
If I interactively switch to week view and then to month view, I get the full month. But when I do g (org-agenda-redo-all) it goes back to not showing the days before today.
How can I add the commands "org-agenda-week-view" and "org-agenda-week-view" to this to get the result I want? Or a cleaner solution.
Thanks in advance. I'll copy the code on the next comment.
I am trying to improve my org-agenda views. I am using this. Specifically the "Next view".
https://web.archive.org/web/2023120
I changed "org-agenda-span 'day" to "org-agenda-span 'month", so it shows the "Next view" how I want it, for the month, except the passed days. i.e. Today 10, I can't see days 9 and earlier.
I would like to see days before "today" (to see tasks that I missed and I should reschedule and so on).
If I interactively switch to week view and then to month view, I get the full month. But when I do g (org-agenda-redo-all) it goes back to not showing the days before today.
How can I add the commands "org-agenda-week-view" and "org-agenda-week-view" to this to get the result I want? Or a cleaner solution.
Thanks in advance. I'll copy the code on the next comment.
Anonymous 01/10/25(Fri)05:41:34 No.103835593
>>103835589
(setq org-agenda-custom-commands
'(("n" "Next View"
((agenda "" ((org-agenda-span 'month)
(org-super-agenda-groups
'((:name "Today"
:time-grid t
:todo "TODAY"
:scheduled today
:order 0)
(:habit t)
(:name "Due Today"
:deadline today
:order 2)
(:name "Due Soon"
:deadline future
:order 8)
(:name "Overdue"
:deadline past
:order 7)
))))
(todo "" ((org-agenda-overriding-header "")
(org-super-agenda-groups
'((:name "Inbox"
:file-path "inbox"
:order 0
)
(:discard (:todo "TODO"))
(:auto-category t
:order 9)
))))))
("t" "Todo View"
(
(todo "" ((org-agenda-overriding-header "")
(org-super-agenda-groups
'((:name "Inbox"
:file-path "inbox"
:order 0
)
(:auto-category t
:order 9)
))))))
))
(org-super-agenda-mode)
Anonymous 01/10/25(Fri)10:53:32 No.103837894
Anonymous 01/10/25(Fri)11:28:53 No.103838246
>>103821317
What's buggy about it? Been using it for quite some time now and not sure what's wrong
What's buggy about it? Been using it for quite some time now and not sure what's wrong
Anonymous 01/10/25(Fri)11:29:41 No.103838256
Please recommend me a new non-autistic font to use. I've been coding a lot the last 6 months and a new font is the only time of visual stimulus I can afford right now.
Anonymous 01/10/25(Fri)11:35:02 No.103838321
Anonymous 01/10/25(Fri)11:35:53 No.103838325
huh?
emac 01/10/25(Fri)11:41:23 No.103838385
>>103838325
emac?
emac?
Anonymous 01/10/25(Fri)11:45:44 No.103838440
>>103838321
I second this. It looks clean for both code and documentation.
I second this. It looks clean for both code and documentation.
Anonymous 01/10/25(Fri)11:47:32 No.103838455
>>103838256
mononoki
mononoki
Anonymous 01/10/25(Fri)11:54:38 No.103838548
>>103838256
IBM Plex Mono
IBM Plex Mono
Anonymous 01/10/25(Fri)12:26:54 No.103838875
Anonymous 01/10/25(Fri)13:40:12 No.103839617
When I use the unix pass manager to copy a password, it lasts for 45 seconds in system clipboard and then gets removed. Problem is when I have Emacs open, it gets put into the kill-ring as well. This kill-ring entry doesn't seem to be cleared automatically like the system clipboard one does.
I know I can disable Emacs system clipboard integration to prevent this, but is there any other way? The system clipboard integration is really useful otherwise.
I know I can disable Emacs system clipboard integration to prevent this, but is there any other way? The system clipboard integration is really useful otherwise.
Anonymous 01/10/25(Fri)14:01:02 No.103839851
What do you guys use C-z for? For those who don't know, C-z is the command for suspend-frame, which is useless on graphical emacs, so I rebind (I keep it in terminal tho) another command to it. At the moment I bound repeat to it for easier access, but I'm wondering if any anons here have useful/interesting commands they place on it. Or do you use it as another keymap?
Anonymous 01/10/25(Fri)14:57:51 No.103840514
>>103839617
If your worried about security simply clearing the kill ring isn't enough; it'll still be stored somewhere in memory and it'll probably even survive a couple of garbage collections.
If your worried about security simply clearing the kill ring isn't enough; it'll still be stored somewhere in memory and it'll probably even survive a couple of garbage collections.
Anonymous 01/10/25(Fri)15:02:17 No.103840591
>>103839851
Zap-to-char-reverse.
Zap-to-char-reverse.
Anonymous 01/10/25(Fri)15:52:45 No.103841180
>>103838321
i love caskaydia-cove
i love caskaydia-cove
Anonymous 01/10/25(Fri)16:05:19 No.103841320
>>103840514
Even pass.el seems to just overwrite the specific kill in the kill-ring.
I don't know how paranoid I should be about this security wise.
Although, I think if malicious actors can read things from the memory in my computer I'm already screwed.
It just feels weird to have my password in plain text in my kill-ring.
Even pass.el seems to just overwrite the specific kill in the kill-ring.
I don't know how paranoid I should be about this security wise.
Although, I think if malicious actors can read things from the memory in my computer I'm already screwed.
It just feels weird to have my password in plain text in my kill-ring.
Anonymous 01/10/25(Fri)16:19:33 No.103841494
>>103841320
You shouldn't be worried at all because Xorg is already so insecure that any running process can read your keyboard input and clipboard at-will, any attempt to 'prevent' stuff leaking on a pwned system is nothing more than security theatre. Additionally them stealing your passwords is the least of your worried if your a developer, losing your private keys is way scarier.
You shouldn't be worried at all because Xorg is already so insecure that any running process can read your keyboard input and clipboard at-will, any attempt to 'prevent' stuff leaking on a pwned system is nothing more than security theatre. Additionally them stealing your passwords is the least of your worried if your a developer, losing your private keys is way scarier.
Anonymous 01/10/25(Fri)16:32:35 No.103841623
>>103839851
In evil, C-z toggles emacs state. Emacs state is useful for modes that don't yet play well with evil. I use it in:
- yeetube-mode
- tmr-tabulated-mode
In evil, C-z toggles emacs state. Emacs state is useful for modes that don't yet play well with evil. I use it in:
- yeetube-mode
- tmr-tabulated-mode
Anonymous 01/10/25(Fri)17:47:54 No.103842504
anybody read this book? is it any good?
Anonymous 01/10/25(Fri)17:48:27 No.103842506
>>103839617
do not operate browsers with passwords on machines you do not trust. it really is this simple, and there is NOTHING you can do to mitigate it.
ideally, you would have multiple computers.
do not operate browsers with passwords on machines you do not trust. it really is this simple, and there is NOTHING you can do to mitigate it.
ideally, you would have multiple computers.
Anonymous 01/10/25(Fri)17:51:24 No.103842545
Anonymous 01/10/25(Fri)18:12:41 No.103842776
>>103842545
do you understand Qubes OS? like actually understand what exactly it is doing?
good security is understood by the end user, or else you end up with people using "E2E" crypto where the keys are stored on a server, "encrypted" using the keygen algorithm from of 6-character numerical pin.
do you understand Qubes OS? like actually understand what exactly it is doing?
good security is understood by the end user, or else you end up with people using "E2E" crypto where the keys are stored on a server, "encrypted" using the keygen algorithm from of 6-character numerical pin.
Anonymous 01/10/25(Fri)18:49:31 No.103843145
>>103839851
Undo. Like God intents.
Undo. Like God intents.
Anonymous 01/10/25(Fri)18:52:54 No.103843192
This has probably been asked 950 negrillion times here but what's the closest thing to a modern lisp machine?
Anonymous 01/10/25(Fri)19:01:15 No.103843285
>>103843192
Emacs is a UI environment that is programmed using Elisp. you can create painting applications in Emacs. you can create CAD software in Emacs. Elisp is a turing complete language, Emacs' API offers access to the filesystem and other systems, and there are battle-tested facilities for handling user input in a wide variety of manners, as well as displaying the results of such input in a wide variety of manners (not just text).
Emacs is a UI environment that is programmed using Elisp. you can create painting applications in Emacs. you can create CAD software in Emacs. Elisp is a turing complete language, Emacs' API offers access to the filesystem and other systems, and there are battle-tested facilities for handling user input in a wide variety of manners, as well as displaying the results of such input in a wide variety of manners (not just text).
Anonymous 01/10/25(Fri)19:03:22 No.103843309
>>103839851
I have multi select for toggling wifi, suspending PC and few other things
But I use QWERTZ keyboard.
On a side note, do you people actually yank with C-y on QWERTY? That must be super uncomfortable. I understand that in the olden times you wanted to C-z often since you had one text terminal and you needed to pause processes + consistency with shell. But nowadays it sounds insane to keep using it for pasting text - something I do infinitely more than pausing process
I have multi select for toggling wifi, suspending PC and few other things
But I use QWERTZ keyboard.
On a side note, do you people actually yank with C-y on QWERTY? That must be super uncomfortable. I understand that in the olden times you wanted to C-z often since you had one text terminal and you needed to pause processes + consistency with shell. But nowadays it sounds insane to keep using it for pasting text - something I do infinitely more than pausing process
Anonymous 01/10/25(Fri)19:42:48 No.103843878
>>103843192
>This has probably been asked 950 negrillion times here but what's the closest thing to a modern lisp machine?
LispWorks. Emacs only superficially resembles a lisp machine, it doesn't operate or function similarly to actual lispm's.
>This has probably been asked 950 negrillion times here but what's the closest thing to a modern lisp machine?
LispWorks. Emacs only superficially resembles a lisp machine, it doesn't operate or function similarly to actual lispm's.
Anonymous 01/10/25(Fri)20:04:29 No.103844201
>>103843878
Interesting although really fucking expensive
Interesting although really fucking expensive
Anonymous 01/10/25(Fri)22:35:13 No.103846158
i want to murder whoever thought we should name the scheme libraries like this
Anonymous 01/10/25(Fri)22:45:44 No.103846273
>>103846158
It's kinda crazy that no one pushed back on that back in the day. I do wonder who's idea it was.
https://github.com/scheme-requests-for-implementation
https://srfi.schemers.org/
It's kinda crazy that no one pushed back on that back in the day. I do wonder who's idea it was.
https://github.com/scheme-requests-
https://srfi.schemers.org/
Anonymous 01/10/25(Fri)23:03:10 No.103846472
>>103843878
Do you know of any good resources for learning about how actual lisp machines worked?
Do you know of any good resources for learning about how actual lisp machines worked?
Anonymous 01/10/25(Fri)23:19:03 No.103846680
tardanon here.
how do I get into LISP, or should I say, programming in general?
this tech stuff is quite confusing, but I want to learn about it.
tardanon here.
how can I go about learning lisp and utilizing it? what is it used for?
how do I get into LISP, or should I say, programming in general?
this tech stuff is quite confusing, but I want to learn about it.
tardanon here.
how can I go about learning lisp and utilizing it? what is it used for?
Anonymous 01/10/25(Fri)23:34:17 No.103846894
the most interesting thing about immutable languages is that they naturally take serializable forms. your "pointers" must be explicitly managed by you through the ensuring of unique identifiers, typically used as keys within some map.
it is important to do this btw!
if you embed the same data structure into various different maps, this might be fine NOW, because the runtime will know that they are all "related" via some immutable data structure implementation detail, but when you serialize the data to disk, then reload it later, you will end up with actual duplicates of the data across the different maps, resulting in MUCH greater memory consumption than prior to serialization.
it is important to do this btw!
if you embed the same data structure into various different maps, this might be fine NOW, because the runtime will know that they are all "related" via some immutable data structure implementation detail, but when you serialize the data to disk, then reload it later, you will end up with actual duplicates of the data across the different maps, resulting in MUCH greater memory consumption than prior to serialization.
Anonymous 01/10/25(Fri)23:34:54 No.103846903
>>103846680
have you tried clicking on the links in the op?
have you tried clicking on the links in the op?
Anonymous 01/10/25(Fri)23:55:41 No.103847130
>>103846894
I guess you could also run a compression algorithm on data deserialized in batches?
I guess you could also run a compression algorithm on data deserialized in batches?
Anonymous 01/11/25(Sat)00:08:56 No.103847286
>>103846472
nta but i think theres a few emulators n vms for old lisp machines
nta but i think theres a few emulators n vms for old lisp machines
Anonymous 01/11/25(Sat)02:07:52 No.103848312
>>103846472
https://interlisp.org/
https://online.interlisp.org/
https://www.youtube.com/watch?v=HYWFTiai_tA
https://interlisp.org/
https://online.interlisp.org/
https://www.youtube.com/watch?v=HYW
Anonymous 01/11/25(Sat)02:18:45 No.103848406
Anonymous 01/11/25(Sat)02:52:03 No.103848710
How good is Paul Graham's ANSI Common Lisp?
I've done HtDP (the entire thing) in Racket and I would eventually want to get into SICP, but I want to get a hand at making some projects in SBCL as I've heard that's a more practical dialect for shipping code as opposed to Scheme.
Basically: what does Paul Graham's book have that could make it a more attractive next read as opposed to SICP?
I've done HtDP (the entire thing) in Racket and I would eventually want to get into SICP, but I want to get a hand at making some projects in SBCL as I've heard that's a more practical dialect for shipping code as opposed to Scheme.
Basically: what does Paul Graham's book have that could make it a more attractive next read as opposed to SICP?
Anonymous 01/11/25(Sat)02:53:01 No.103848717
>>103846680
>what is it used for?
For writing programs.
>how can I go about learning lisp and utilizing it?
It depends.
First it won't hurt if you do https://www.maria.cloud/intro
It's Clojure but it doesn't matter at this level.
Then you should narrow down what you want to make and pick a Lisp with the ecosystem that serves your needs the best.
Search "[thing you want to do] [Lisp dialect]" and consult lists like https://github.com/CodyReichert/awesome-cl and https://www.clojure-toolbox.com/
Basically you have 3 options for getting things done:
Common Lisp:
Old, big, ugly, fast.
Relatively big (for a Lisp), old ecosystem.
Starter text - Common Lisp: A Gentle Introduction to Symbolic Computation
Read https://stevelosh.com/blog/2018/08/a-road-to-common-lisp
Clojure:
New-ish, modern, beautiful, opinionated (and so at times relatively less convenient for doing certain things).
Relatively big (for a Lisp), active ecosystem, especially for web dev and adjacent things. First-class access to the huge Java ecosystem.
ClojureScript for compiling Clojure to JS, ClojureDart for writing Dart/Flutter apps in Clojure. Babashka for running quick scripts.
Starter text: it would be Clojure for the Brave and True, I guess. Clojure kinda has a problem with learning materials for people completely new to programming. Getting Clojure is a good book if you have at least some basic programming experience.
Read this before anything else:
https://clojure.org/guides/install_clojure
https://clojure.org/guides/editors (TLDR you most likely should start with VS Code + Calva)
https://clojure-doc.org/articles/tutorials/getting_started/ (regarding Clojure CLI vs. Leiningen)
Elisp:
If your main point of interest is editing text with Emacs.
Starter text - https://www.gnu.org/software/emacs/manual/eintr.html
If you specifically want to make games, particularly with Love2D, there is Fennel - https://fennel-lang.org/
It's also the Lisp to pick if you want access to the Lua ecosystem.
>what is it used for?
For writing programs.
>how can I go about learning lisp and utilizing it?
It depends.
First it won't hurt if you do https://www.maria.cloud/intro
It's Clojure but it doesn't matter at this level.
Then you should narrow down what you want to make and pick a Lisp with the ecosystem that serves your needs the best.
Search "[thing you want to do] [Lisp dialect]" and consult lists like https://github.com/CodyReichert/awe
Basically you have 3 options for getting things done:
Common Lisp:
Old, big, ugly, fast.
Relatively big (for a Lisp), old ecosystem.
Starter text - Common Lisp: A Gentle Introduction to Symbolic Computation
Read https://stevelosh.com/blog/2018/08/
Clojure:
New-ish, modern, beautiful, opinionated (and so at times relatively less convenient for doing certain things).
Relatively big (for a Lisp), active ecosystem, especially for web dev and adjacent things. First-class access to the huge Java ecosystem.
ClojureScript for compiling Clojure to JS, ClojureDart for writing Dart/Flutter apps in Clojure. Babashka for running quick scripts.
Starter text: it would be Clojure for the Brave and True, I guess. Clojure kinda has a problem with learning materials for people completely new to programming. Getting Clojure is a good book if you have at least some basic programming experience.
Read this before anything else:
https://clojure.org/guides/install_
https://clojure.org/guides/editors (TLDR you most likely should start with VS Code + Calva)
https://clojure-doc.org/articles/tu
Elisp:
If your main point of interest is editing text with Emacs.
Starter text - https://www.gnu.org/software/emacs/
If you specifically want to make games, particularly with Love2D, there is Fennel - https://fennel-lang.org/
It's also the Lisp to pick if you want access to the Lua ecosystem.
Anonymous 01/11/25(Sat)03:02:42 No.103848791
>>103846680
>>103848717
For learning and getting better at programming in general read How to Design Programs - https://htdp.org/
It uses Racket (or rather a bunch of educational languages made with Racket). You probably won't end up using Racket for making stuff, though who knows.
https://beautifulracket.com/appendix/why-racket-why-lisp.html
https://beautifulracket.com/appendix/why-lop-why-racket.html
>>103848717
For learning and getting better at programming in general read How to Design Programs - https://htdp.org/
It uses Racket (or rather a bunch of educational languages made with Racket). You probably won't end up using Racket for making stuff, though who knows.
https://beautifulracket.com/appendi
https://beautifulracket.com/appendi
Anonymous 01/11/25(Sat)04:27:16 No.103849285
chicken scheme :^3
Anonymous 01/11/25(Sat)04:45:20 No.103849404
Anyone use emacs for anything japanese? Was thinking about maybe using it to read jp books and translate words + turn them into anki cards at the same time but nov.el and the built in dictionary functions feel kind of iffy for that specifically
Anonymous 01/11/25(Sat)05:31:42 No.103849665
>>103846472
https://bitsavers.org/pdf/symbolics/software/genera_8/
If your looking for 'alien tech' then you'll be disappointed, they weren't weird despite what the internet has told you.
https://bitsavers.org/pdf/symbolics
If your looking for 'alien tech' then you'll be disappointed, they weren't weird despite what the internet has told you.
Anonymous 01/11/25(Sat)05:42:09 No.103849742
>>103849404
i thought about it too but ttu + yomitan is just too easy and works too well, plus i can use it on my phone so I couldn't justify trying to do it with emacs tools
i thought about it too but ttu + yomitan is just too easy and works too well, plus i can use it on my phone so I couldn't justify trying to do it with emacs tools
Anonymous 01/11/25(Sat)05:44:02 No.103849754
>>103849404
For writing in Japanese: "ddskk" and "Source Han Code JP" are a popular combo.
For writing in Japanese: "ddskk" and "Source Han Code JP" are a popular combo.
Anonymous 01/11/25(Sat)06:43:02 No.103850190
>>103848710
>I've done HtDP (the entire thing) in Racket and I would eventually want to get into SICP, but I want to get a hand at making some projects in SBCL as I've heard that's a more practical dialect for shipping code as opposed to Scheme.
have you actually wrote something? just code bro.
>I've done HtDP (the entire thing) in Racket and I would eventually want to get into SICP, but I want to get a hand at making some projects in SBCL as I've heard that's a more practical dialect for shipping code as opposed to Scheme.
have you actually wrote something? just code bro.
Anonymous 01/11/25(Sat)07:06:39 No.103850353
>>103848710
Paul Graham doesn't like Common Lisp, he generally preferred Scheme but recognized it isn't (wasn't?) suitable for 'real-world' development/deployment so be aware he doesn't write idiomatic CL and purposefully avoids CLOS. He isn't usually wrong in his criticisms but he's very spiteful and bitter that his preferred dialect didn't win, can you blame him though?
Paul Graham doesn't like Common Lisp, he generally preferred Scheme but recognized it isn't (wasn't?) suitable for 'real-world' development/deployment so be aware he doesn't write idiomatic CL and purposefully avoids CLOS. He isn't usually wrong in his criticisms but he's very spiteful and bitter that his preferred dialect didn't win, can you blame him though?
Anonymous 01/11/25(Sat)07:29:24 No.103850528
>>103843192
TempleOS
TempleOS
Anonymous 01/11/25(Sat)07:37:22 No.103850577
>>103846158
>>103846273
>It's kinda crazy that no one pushed back on that back in the day
Well, Al Petrofsky did: https://srfi-email.schemers.org/srfi-discuss/msg/2762783/
Perhaps more mailing list (and Usenet?) digging will reveal more discussions.
>>103846273
>It's kinda crazy that no one pushed back on that back in the day
Well, Al Petrofsky did: https://srfi-email.schemers.org/srf
Perhaps more mailing list (and Usenet?) digging will reveal more discussions.
Anonymous 01/11/25(Sat)07:56:58 No.103850693
>>103848710
It's my first Lisp book. Short, fun, cool examples, but not very deep.
I would recommend practical common lisp for any CL virgin nowadays.
It's my first Lisp book. Short, fun, cool examples, but not very deep.
I would recommend practical common lisp for any CL virgin nowadays.
Anonymous 01/11/25(Sat)08:48:06 No.103851162
Am I to retarded to understand how org-roam works ? What's the difference between a node and a note ? Wtf are capture ?
Nice logo btw
Nice logo btw
Anonymous 01/11/25(Sat)09:05:22 No.103851290
Anonymous 01/11/25(Sat)09:23:15 No.103851468
>>103838256
Comic Sans Mono
Comic Sans Mono
Anonymous 01/11/25(Sat)09:46:36 No.103851698
Anonymous 01/11/25(Sat)09:49:59 No.103851738
>>103849404
I sometimes use emacs to write a little bit of Japanese when my regular IME is not working
I sometimes use emacs to write a little bit of Japanese when my regular IME is not working
Anonymous 01/11/25(Sat)09:54:03 No.103851793
>>103851290
No.
I don't have a lot of experiences with org-mode. I use it for a few month but only for simple use case, like I used to do with markdown notes
No.
I don't have a lot of experiences with org-mode. I use it for a few month but only for simple use case, like I used to do with markdown notes
Anonymous 01/11/25(Sat)10:03:49 No.103851908
>>103838256
Visual stimulus? You didn't need that.
Visual stimulus? You didn't need that.
Anonymous 01/11/25(Sat)11:13:13 No.103852798
>>103850577
That's a great idea he had for assigning short-names to all SRFIs. I feel like they could still do this today and recover from this clusterfuck.
That's a great idea he had for assigning short-names to all SRFIs. I feel like they could still do this today and recover from this clusterfuck.
Anonymous 01/11/25(Sat)13:33:16 No.103854773
>>103850577
>>103852798
You might be interested that the library and import macros use
to translate (srfi 1) or (srfi :1) to (srfi srfi-1), so adding a table like
to expand (import (srfi sets)) to (import (srfi 3)) is already half-implemented
The table could be maintained in another file as more srfis are added, or generated from a directory listing
>>103852798
You might be interested that the library and import macros use
(define (srfi-name? stx)
(syntax-case stx (srfi)
((srfi n rest ...)
(and (and-map sym? #'(rest ...))
(or (n? #'n)
(colon-n? #'n))))
(_ #f)))
(define (make-srfi-n context n)
(datum->syntax
context
(string->symbol
(string-append
"srfi-"
(let ((n (syntax->datum n)))
(if (symbol? n)
(substring (symbol->string n) 1)
(number->string n)))))))
to translate (srfi 1) or (srfi :1) to (srfi srfi-1), so adding a table like
((sets . 3) (vectors . 4) (signatures . 5))
to expand (import (srfi sets)) to (import (srfi 3)) is already half-implemented
The table could be maintained in another file as more srfis are added, or generated from a directory listing
Anonymous 01/11/25(Sat)14:22:42 No.103855502
>>103852798
R7RS designers are turning some SRFIs into standard scheme libraries (sometimes with small modifications). For example, srfi-9's
R7RS designers are turning some SRFIs into standard scheme libraries (sometimes with small modifications). For example, srfi-9's
define-record-typeis part of R7RS-small, and it seems like srfi-124 will be named
(scheme ephemeron)in R7RS-large.
Anonymous 01/11/25(Sat)16:29:50 No.103856938
Anonymous 01/11/25(Sat)17:16:52 No.103857404
>>103850528
Did terry ever say anything about lisp?
Did terry ever say anything about lisp?
Anonymous 01/11/25(Sat)17:39:43 No.103857621
plan to use guix for all my emacs package management and want to totally kill 'package.el'. these three lines are what i found from googling:
is this what i need and is any of it unneccesary? i don't use use-package anywhere in my config so the second line is probably unneeded.
and as far as i can tell "package-enable-at-startup nil" seems like a good setting anyways since i already manually require packages i use later.
unreated question: do you think it would be better practice to use "customize-set-variable" instead of "setq" in my config? my understanding is "customize-set-variable" is smarter and will sometimes set other necessary variables or something along that line?
(setq package-enable-at-startup nil)
(setq use-package-ensure-function 'ignore)
(setq package-archives nil)
is this what i need and is any of it unneccesary? i don't use use-package anywhere in my config so the second line is probably unneeded.
and as far as i can tell "package-enable-at-startup nil" seems like a good setting anyways since i already manually require packages i use later.
unreated question: do you think it would be better practice to use "customize-set-variable" instead of "setq" in my config? my understanding is "customize-set-variable" is smarter and will sometimes set other necessary variables or something along that line?
Anonymous 01/11/25(Sat)17:44:16 No.103857656
>>103857621
>plan to use guix for all my emacs package management
why, doesn't this completely kill the point of emacs being incredibly easy to change on the fly?
emac package management is already declarative, this seems like unnecessary indirection
anyways, as far as i know the only thing you should need from that is package-enable-at-startup
>plan to use guix for all my emacs package management
why, doesn't this completely kill the point of emacs being incredibly easy to change on the fly?
emac package management is already declarative, this seems like unnecessary indirection
anyways, as far as i know the only thing you should need from that is package-enable-at-startup
Anonymous 01/11/25(Sat)18:05:28 No.103857828
>>103857621
>my understanding is "customize-set-variable" is smarter and will sometimes set other necessary variables or something along that line?
look into setopt
pretty sure that covers exactly what you're looking for
>my understanding is "customize-set-variable" is smarter and will sometimes set other necessary variables or something along that line?
look into setopt
pretty sure that covers exactly what you're looking for
Anonymous 01/11/25(Sat)18:10:48 No.103857885
>>103842504
From the intro:
>One strategy for flexibility ... is generic dispatch ... unlike the generic dispatch in the typical object-oriented programming context, our generic dispatch doesn't involve ideas like classes, instances, and inheritance. These weaken the separation of concerns by introducing spurious ontological commitments.
That articulates something I had always thought in my college intro classes but never put words to. Like it seemed weirdly narrow that this one particular hierarchical setup should be built into the language rather than explicitly specified by some more general set of primitives.
The resonance of that one phrase "spurious ontological commitments convinced me the book was worth reading. I'm working through it to learn Scheme, still on the first chapter on combinators, interesting so far but pretty abstract
I don't know how useful or profound the techniques will turn out to be but the thinking behind them seems so refreshingly clear
From the intro:
>One strategy for flexibility ... is generic dispatch ... unlike the generic dispatch in the typical object-oriented programming context, our generic dispatch doesn't involve ideas like classes, instances, and inheritance. These weaken the separation of concerns by introducing spurious ontological commitments.
That articulates something I had always thought in my college intro classes but never put words to. Like it seemed weirdly narrow that this one particular hierarchical setup should be built into the language rather than explicitly specified by some more general set of primitives.
The resonance of that one phrase "spurious ontological commitments convinced me the book was worth reading. I'm working through it to learn Scheme, still on the first chapter on combinators, interesting so far but pretty abstract
I don't know how useful or profound the techniques will turn out to be but the thinking behind them seems so refreshingly clear
Anonymous 01/11/25(Sat)18:22:31 No.103858013
>>103857885
Picked up, I need to read sicm too someday
Picked up, I need to read sicm too someday
Anonymous 01/11/25(Sat)19:47:19 No.103858948
Anonymous 01/11/25(Sat)20:49:00 No.103859453
>>103857885
As a simpleton, I still can't help break the feeling that a weak type system would be a hindrance on large scale apps. And I've seen a lot of Rich Hickey's talks on exactly this subject... Maybe I should go watch them again, but is it really not as bad as it seems? My first inclination would be to use a strongly typed, pure functional language for a project. I think it helps me keep my thoughts on track.
As a simpleton, I still can't help break the feeling that a weak type system would be a hindrance on large scale apps. And I've seen a lot of Rich Hickey's talks on exactly this subject... Maybe I should go watch them again, but is it really not as bad as it seems? My first inclination would be to use a strongly typed, pure functional language for a project. I think it helps me keep my thoughts on track.
Anonymous 01/11/25(Sat)20:52:46 No.103859506
>>103859453
i work on a massive clojure project at work and i would say it's absolutely a hindrance when you're first getting into a project you know nothing about
even worse when functions aren't documented or said documentation is outdated
i work on a massive clojure project at work and i would say it's absolutely a hindrance when you're first getting into a project you know nothing about
even worse when functions aren't documented or said documentation is outdated
Anonymous 01/11/25(Sat)21:14:52 No.103859748
Anonymous 01/11/25(Sat)21:20:42 No.103859812
Is there anyone who learned Lisp after 2023? Common Lisp in particular? Is everyone learning clojure these days?
Anonymous 01/11/25(Sat)21:20:54 No.103859814
>>103859506
This checks out. On one hand I can see how big an advantage having that kind of flexibility would be to someone very experienced in the language, but I don't know if it's for me in the long run. I think I'd rather more static code. I guess this is why emacs is written mostly in lisp though, eh?
This checks out. On one hand I can see how big an advantage having that kind of flexibility would be to someone very experienced in the language, but I don't know if it's for me in the long run. I think I'd rather more static code. I guess this is why emacs is written mostly in lisp though, eh?
Anonymous 01/11/25(Sat)22:05:58 No.103860172
C is to C++ as Lisp is to Prolog
Anonymous 01/11/25(Sat)23:23:06 No.103860764
>Emacs not giving a fuck about vim code
Man, I miss the editor war
Man, I miss the editor war
Anonymous 01/12/25(Sun)02:39:21 No.103862210
>>103860172
Could you please elaborate, nigger?
Could you please elaborate, nigger?
Anonymous 01/12/25(Sun)03:05:16 No.103862338
>>103860764
Emacs can highlight vimrc if you try.
https://github.com/mcandre/vimrc-mode
https://melpa.org/#/vimrc-mode
Emacs can highlight vimrc if you try.
https://github.com/mcandre/vimrc-mo
https://melpa.org/#/vimrc-mode
Anonymous 01/12/25(Sun)04:20:30 No.103862785
https://www.youtube.com/watch?v=L_4pLN0gXGI
Anonymous 01/12/25(Sun)05:37:43 No.103863236
>>103859812
>Is everyone learning clojure these days?
Although Clojure is by far the most popular lisp CL is still relatively popular with plenty of new blood. Additionally I've noticed a small subset of Clojure programmers become very enamoured with REPL/image driven development and migrate to CL.
>Is everyone learning clojure these days?
Although Clojure is by far the most popular lisp CL is still relatively popular with plenty of new blood. Additionally I've noticed a small subset of Clojure programmers become very enamoured with REPL/image driven development and migrate to CL.
Anonymous 01/12/25(Sun)08:00:05 No.103864143
>>103823802
https://jank-lang.org/
>Where jank differs from Clojure JVM is that its host is C++ on top of an LLVM-based JIT. This allows jank to offer the same benefits of REPL-based development while being able to seamlessly reach into the native world and compete seriously with JVM's performance.
https://jank-lang.org/
>Where jank differs from Clojure JVM is that its host is C++ on top of an LLVM-based JIT. This allows jank to offer the same benefits of REPL-based development while being able to seamlessly reach into the native world and compete seriously with JVM's performance.
Anonymous 01/12/25(Sun)08:22:44 No.103864322
>>103864143
How is the startup time?
How is the startup time?
Anonymous 01/12/25(Sun)08:39:14 No.103864474
>>103864143
>https://jank-lang.org/
if this goes anywhere, there will be endless "is jank a clojure" arguments
>https://jank-lang.org/
if this goes anywhere, there will be endless "is jank a clojure" arguments
Anonymous 01/12/25(Sun)09:08:58 No.103864724
>>103864322
Still haven't tested it but the author did write about it when he moved to LLVM IR.
https://jank-lang.org/blog/2024-11-29-llvm-ir/
>>103864474
It's a dialect.
For what I understood it doesn't work with everything Clojure JRM ClojureScript, but a good enough subset.
Still haven't tested it but the author did write about it when he moved to LLVM IR.
https://jank-lang.org/blog/2024-11-
>>103864474
It's a dialect.
For what I understood it doesn't work with everything Clojure JRM ClojureScript, but a good enough subset.
Anonymous 01/12/25(Sun)11:29:24 No.103866059
>>103862338
Yeah I know, but I was talking about the behaviour "out of the box".
Yeah I know, but I was talking about the behaviour "out of the box".
Anonymous 01/12/25(Sun)12:29:28 No.103866747
Anonymous 01/12/25(Sun)12:47:56 No.103866950
>>103864724
Thanks for the link. The startup time looks promising.
Thanks for the link. The startup time looks promising.
Anonymous 01/12/25(Sun)13:22:11 No.103867407
is there any lisp that:
- transpiles to readable C code
- doesn't rely on garbage collection
- doesn't require weird dependencies
- it is actually short, as anything made in lisp should look like.
- transpiles to readable C code
- doesn't rely on garbage collection
- doesn't require weird dependencies
- it is actually short, as anything made in lisp should look like.
Anonymous 01/12/25(Sun)13:31:01 No.103867521
>>103866747
When a new month rolls around, you have to setq org-agenda-start-day again so that it's pointing to the beginning of the new month.
(setq org-agenda-span 'month)
;; month
(setq org-agenda-start-day (format-time-string "%Y-%m-01"))
;; "2025-01-01"
When a new month rolls around, you have to setq org-agenda-start-day again so that it's pointing to the beginning of the new month.
Anonymous 01/12/25(Sun)13:39:31 No.103867637
>>103867407
No. Regardless of language "transpiled" code isn't really ever going to be human-readable.
>doesn't rely on garbage collection
Define "rely".
>doesn't require weird dependencies
I can't think of any Lisp that does.
No. Regardless of language "transpiled" code isn't really ever going to be human-readable.
>doesn't rely on garbage collection
Define "rely".
>doesn't require weird dependencies
I can't think of any Lisp that does.
Anonymous 01/12/25(Sun)13:55:52 No.103867848
>>103867637
> No. Regardless of language "transpiled" code isn't really ever going to be human-readable.
I can imagine a few examples in other languages. C macros literally transpile to C code and the unrolled C code is often more readable than the macros themselves.
> Define "rely".
Doesn't expect some runtime to exist that would launch some garbage collector from C. Rather, it provides some memory management funcs on lisp.
> doesn't require weird dependencies
Not saying it does, but nowadays everything seems filled with shit just to concatenate two strings.
> No. Regardless of language "transpiled" code isn't really ever going to be human-readable.
I can imagine a few examples in other languages. C macros literally transpile to C code and the unrolled C code is often more readable than the macros themselves.
> Define "rely".
Doesn't expect some runtime to exist that would launch some garbage collector from C. Rather, it provides some memory management funcs on lisp.
> doesn't require weird dependencies
Not saying it does, but nowadays everything seems filled with shit just to concatenate two strings.
中出し 01/12/25(Sun)13:57:19 No.103867865
>>103867407
Pre-Scheme: https://prescheme.org
Or CHICKEN Scheme's CRUNCH:
https://www.more-magic.net/posts/crunch.html
https://wiki.call-cc.org/eggref/6/crunch
Pre-Scheme: https://prescheme.org
Or CHICKEN Scheme's CRUNCH:
https://www.more-magic.net/posts/cr
https://wiki.call-cc.org/eggref/6/c
Anonymous 01/12/25(Sun)14:14:55 No.103868094
>>103866950
The author post frequently on Clojure subreddit so you can ask him stuff whenever.
The author post frequently on Clojure subreddit so you can ask him stuff whenever.
Anonymous 01/12/25(Sun)14:22:19 No.103868179
>>103867848
>C macros literally transpile to C code and the unrolled C code is often more readable than the macros themselves.
C macros don't compile to anything and they don't unroll anything, they're expanded by a preprocessor.
>C macros literally transpile to C code and the unrolled C code is often more readable than the macros themselves.
C macros don't compile to anything and they don't unroll anything, they're expanded by a preprocessor.
Anonymous 01/12/25(Sun)14:24:19 No.103868200
>>103849404
Emacs did something weird where it was using 2 different Japanese fonts in the same org document. I fixed it by using the function I found here:
https://emacs.stackexchange.com/questions/31561/set-different-fonts-for-different-charsets/31600#31600
The function name makes it sound like it's for OSX, but it works in Linux too. The only thing you need to change is:
- my-ascii-font
- my-jp-font
Set those to your preferred fonts. You can find some nice free Japanese fonts here.
https://www.freejapanesefont.com/
I like this one.
https://www.freejapanesefont.com/yasashisa-antique-download/
Emacs did something weird where it was using 2 different Japanese fonts in the same org document. I fixed it by using the function I found here:
https://emacs.stackexchange.com/que
The function name makes it sound like it's for OSX, but it works in Linux too. The only thing you need to change is:
- my-ascii-font
- my-jp-font
Set those to your preferred fonts. You can find some nice free Japanese fonts here.
https://www.freejapanesefont.com/
I like this one.
https://www.freejapanesefont.com/ya
Anonymous 01/12/25(Sun)15:13:50 No.103868808
>>103867521
Thank you! I will try this!
Thank you! I will try this!
Anonymous 01/12/25(Sun)15:37:48 No.103869064
using use-package for configuration: y or n?
Anonymous 01/12/25(Sun)15:43:01 No.103869123
>>103869064
if you just have your config in init.el you should use it, if you have your config as org you can just use org headers to group stuff
if you just have your config in init.el you should use it, if you have your config as org you can just use org headers to group stuff
Anonymous 01/12/25(Sun)15:51:47 No.103869243
>>103869064
You'll definitely want to for packages managed by use-package, for configuring included features it doesn't really matter unless your doing some optimized lazy loading shit.
You'll definitely want to for packages managed by use-package, for configuring included features it doesn't really matter unless your doing some optimized lazy loading shit.
Anonymous 01/12/25(Sun)15:53:59 No.103869270
>>103867407
(define (compile node)
(match node
[('let a b)
(put "~a = ~a;" (compile a) (compile b))]
[(a 'int)
(put "int ~a" (compile a))]
[('lambda name params type body ...)
(put "~a ~a(~{~a~^, ~}) { ~{~a~^ ~} }" type name (map compile params) (map compile body))]
[('call name params ...)
(put "~a(~{~a~^, ~})" name (map compile params))]
[('+ a b)
(put "~a + ~a" (compile a) (compile b))]
[('return a)
(put "return ~a;" (compile a))]
...
(map compile
'((lambda square ((x int)) int
(return (* x x)))
(lambda main () int
(let (a int) 4)
(let (b int) (+ (call square a) (call square a)))
(end (call printf "%d\n" b))
(return 0))))
Anonymous 01/12/25(Sun)15:56:59 No.103869315
>>103817318
emacs with evil mode is so much better than vim/neovim
emacs with evil mode is so much better than vim/neovim
Anonymous 01/12/25(Sun)16:37:42 No.103869845
>>103858013
>sicm
Someday I will become smart enough to finish Functional Differential Geometry. The computer algebra system they use in SICM and FDG is really cool.
>>103858948
At least 12 years. Their plan is to publish "Foundations" in December 2025:
https://codeberg.org/scheme/r7rs/wiki#about
>>103866950
Holy shit, this plot should be logarithmic
>>103867407
You only want AST-transforming macros, amirite?
>sicm
Someday I will become smart enough to finish Functional Differential Geometry. The computer algebra system they use in SICM and FDG is really cool.
>>103858948
At least 12 years. Their plan is to publish "Foundations" in December 2025:
https://codeberg.org/scheme/r7rs/wi
>>103866950
Holy shit, this plot should be logarithmic
>>103867407
You only want AST-transforming macros, amirite?
Anonymous 01/12/25(Sun)17:11:50 No.103870282
>>103859812
I think in the past months we got many more people interested in eLisp and Clojure in special.
I think in the past months we got many more people interested in eLisp and Clojure in special.
Anonymous 01/12/25(Sun)20:51:54 No.103872664
Anonymous 01/12/25(Sun)21:33:05 No.103872974
>>103862210
C++ is "C with Classes" as it just added classes on top of C. Prolog likewise is just "Lisp with Inference". A lot of famous Lisp textbooks eventually build a prolog interpreter at some point, such as PAIP Chapter 10, or SICP 4.4
C++ is "C with Classes" as it just added classes on top of C. Prolog likewise is just "Lisp with Inference". A lot of famous Lisp textbooks eventually build a prolog interpreter at some point, such as PAIP Chapter 10, or SICP 4.4
Anonymous 01/12/25(Sun)21:36:48 No.103873000
>>103872974
AIMA Chapter 7 (Logical Agents) also comes to mind, even though more recent editions of AIMA aren't using LISP anymore, older editions did. Not surprising since it's the same author as PAIP
AIMA Chapter 7 (Logical Agents) also comes to mind, even though more recent editions of AIMA aren't using LISP anymore, older editions did. Not surprising since it's the same author as PAIP
Anonymous 01/12/25(Sun)21:36:55 No.103873002
>>103872974
Calling C++ "just" anything is fucking funny, it's probably the most convoluted and bloated language of all time.
Calling C++ "just" anything is fucking funny, it's probably the most convoluted and bloated language of all time.
Anonymous 01/12/25(Sun)21:57:25 No.103873168
>>103869064
I use use-package. A lot of packages offer use-package snippets in their READMEs, so it's easy to incorporate them into your own config. I often tack on an `:ensure t` in there too so that it downloads it for me.
I use use-package. A lot of packages offer use-package snippets in their READMEs, so it's easy to incorporate them into your own config. I often tack on an `:ensure t` in there too so that it downloads it for me.
Anonymous 01/12/25(Sun)21:58:26 No.103873174
>>103866059
Why would emacs care about vimrc? It doesn't think about vim at all.
Why would emacs care about vimrc? It doesn't think about vim at all.
Anonymous 01/12/25(Sun)22:12:40 No.103873316
Is SICP worth bothering with if you suck at programming?
Anonymous 01/12/25(Sun)22:16:12 No.103873334
>>103873316
Yes, it teaches programming. There’s a great lecture series from the 80s you can find on YouTube that is using sicp to teach programming to people who had never programmed before
Yes, it teaches programming. There’s a great lecture series from the 80s you can find on YouTube that is using sicp to teach programming to people who had never programmed before
Anonymous 01/12/25(Sun)22:20:29 No.103873364
Anonymous 01/12/25(Sun)22:22:36 No.103873376
>>103873364
Are you more incompetent than a noob?
Are you more incompetent than a noob?
Anonymous 01/12/25(Sun)22:24:51 No.103873391
>>103873364
i mean why do you suck at programming? if you find yourself unable to make apps with modern frameworks and all that shit it wont help you. If you don't know algos and data structures it won't really help you. if you have trouble with thinking about low level memory management it won't really help you. It's just a book about the basics of thinking about programs
i mean why do you suck at programming? if you find yourself unable to make apps with modern frameworks and all that shit it wont help you. If you don't know algos and data structures it won't really help you. if you have trouble with thinking about low level memory management it won't really help you. It's just a book about the basics of thinking about programs
Anonymous 01/12/25(Sun)22:30:25 No.103873435
>>103873376
Hardly.
>>103873391
>It's just a book about the basics of thinking about programs
What does that even mean if it has nothing to do with any of the former things?
Hardly.
>>103873391
>It's just a book about the basics of thinking about programs
What does that even mean if it has nothing to do with any of the former things?
Anonymous 01/12/25(Sun)22:31:23 No.103873444
>>103873435
its a 101 book anon, it takes you from not being able to program to being ready to learn about those things
its a 101 book anon, it takes you from not being able to program to being ready to learn about those things
Anonymous 01/12/25(Sun)22:51:27 No.103873617
>tfw take a shitty situation (no types) and run with it (use dev-time assertions to validate integrity of data to a level beyond that of type checkers)
Anonymous 01/12/25(Sun)23:03:35 No.103873739
>>103873444
Fair enough I guess. I've heard people say it was a valuable resource when they already have professional experience though.
Fair enough I guess. I've heard people say it was a valuable resource when they already have professional experience though.
Anonymous 01/12/25(Sun)23:06:37 No.103873763
>>103849404
To write Japanese text so I can search weeb song on YouTube
To write Japanese text so I can search weeb song on YouTube
Anonymous 01/12/25(Sun)23:07:20 No.103873766
Anonymous 01/12/25(Sun)23:18:45 No.103873845
>>103873739
likely because most professional programmers still don't know what they're doing.
likely because most professional programmers still don't know what they're doing.
Anonymous 01/13/25(Mon)00:45:56 No.103874585
>>103873739
SICP is a beautiful book. It has a rare profundity and clarity of thought. It's not some run of the mill intro CS text at all.
SICP is a beautiful book. It has a rare profundity and clarity of thought. It's not some run of the mill intro CS text at all.
Anonymous 01/13/25(Mon)03:15:22 No.103875653
>>103873766
>isn't scheme via terminal better?
Have you considered writing Scheme from within Emacs with Geiser-based REPL interaction?
https://www.gnu.org/software/guile/manual/html_node/Using-Guile-in-Emacs.html
https://www.nongnu.org/geiser/
>isn't scheme via terminal better?
Have you considered writing Scheme from within Emacs with Geiser-based REPL interaction?
https://www.gnu.org/software/guile/
https://www.nongnu.org/geiser/
Anonymous 01/13/25(Mon)03:50:55 No.103875862
>>103873617
What is this sentinel library and why is it so verbose?
What is this sentinel library and why is it so verbose?
Anonymous 01/13/25(Mon)04:18:38 No.103875997
>>103875862
my very first macro (finally, after over a decade of cooding lmao)
needs a lot of work, but too lazy atm. yes, it should take & conditions, also, most importantly, it should populate the map with &env
my very first macro (finally, after over a decade of cooding lmao)
needs a lot of work, but too lazy atm. yes, it should take & conditions, also, most importantly, it should populate the map with &env
Anonymous 01/13/25(Mon)06:54:57 No.103876933
>>103873739
Its a different way of doing things. I've started programming as a hobby because I liked math, then I got a job by random chance, and most my colleagues just think about hitting libraries together until something works. I kinda have to do that as well because I got on the train while it was already running (also known as maintaining legacy software). It really sucks. Some front-end people have absolutely no idea of anything about computing, despite being computer scientists or software engineers, while I, as an outsider sometimes have.
They are different approaches for software, and its not like the modern web and working in a corporate environment helps.
Its a different way of doing things. I've started programming as a hobby because I liked math, then I got a job by random chance, and most my colleagues just think about hitting libraries together until something works. I kinda have to do that as well because I got on the train while it was already running (also known as maintaining legacy software). It really sucks. Some front-end people have absolutely no idea of anything about computing, despite being computer scientists or software engineers, while I, as an outsider sometimes have.
They are different approaches for software, and its not like the modern web and working in a corporate environment helps.
Anonymous 01/13/25(Mon)07:13:57 No.103877080
>>103869064
I stopped using use-package because too much magic going behind my back.
I stopped using use-package because too much magic going behind my back.
Anonymous 01/13/25(Mon)08:16:42 No.103877547
Just a small suggestion for the scheme section of the OP.
i found this pretty good tutorial, a sort of SICP-lite:
https://files.spritely.institute/papers/scheme-primer.html
i found this pretty good tutorial, a sort of SICP-lite:
https://files.spritely.institute/pa
Anonymous 01/13/25(Mon)09:19:08 No.103878034
>>103873617
bro just use malli
bro just use malli
Anonymous 01/13/25(Mon)11:42:21 No.103879393
I found a really nice generalized and language-agnostic solution to sending code from a buffer to a REPL. If you're working in a language that doesn't yet have Emacs support, this can be a nice stop-gap.
https://github.com/ffevotte/isend-mode.el
https://github.com/ffevotte/isend-m
Anonymous 01/13/25(Mon)13:03:18 No.103880322
>>103877080
this is what turns me off of it. too much obfuscation that i don’t understand fully
this is what turns me off of it. too much obfuscation that i don’t understand fully
Anonymous 01/13/25(Mon)13:34:20 No.103880623
>>103880322
90% of what use-package does is wrap (require 'package) in a condition-case, the other 10% just expands keywords. you probably do fully understand what's going on but the simplicity of it is throwing you through a loop because your trying to compare it to a package manager.
90% of what use-package does is wrap (require 'package) in a condition-case, the other 10% just expands keywords. you probably do fully understand what's going on but the simplicity of it is throwing you through a loop because your trying to compare it to a package manager.
Anonymous 01/13/25(Mon)13:43:22 No.103880723
>>103868179
did you just aktchully this hard over this.
did you just aktchully this hard over this.
Anonymous 01/13/25(Mon)13:54:43 No.103880879
>>103880723
No, I restrained myself from going full autistic and explaining everything line-by-line all the way through too elpaca/straight.
No, I restrained myself from going full autistic and explaining everything line-by-line all the way through too elpaca/straight.
Anonymous 01/13/25(Mon)14:05:47 No.103881016
>>103880623
i’m mainly interested in use-package for it’s configuration syntax. specifically using :defer and :after for some packages, but i just don’t know use-package well enough really to prefer it over using pure elisp.
i’m mainly interested in use-package for it’s configuration syntax. specifically using :defer and :after for some packages, but i just don’t know use-package well enough really to prefer it over using pure elisp.
Anonymous 01/13/25(Mon)14:23:22 No.103881216
the language breakdown of my dotfiles repo on github is slowly being taken over by scheme and elisp.
Anonymous 01/13/25(Mon)15:05:55 No.103881631
im going fucking insane while trying to learn common lisp
silly function, but its not important
outputs "TWO", as expected
outputs "NIL", and not "ONE"
fucking why?????? can somebody explain it to me? what am i missing?
(defun testFunc (input) (let ((myvariable input))
(if myvariable (format nil "ONE"))
(if(not myvariable) (format nil "TWO") )
))
silly function, but its not important
(testFunc NIL)
outputs "TWO", as expected
(testFunc T)
outputs "NIL", and not "ONE"
fucking why?????? can somebody explain it to me? what am i missing?
Anonymous 01/13/25(Mon)15:15:30 No.103881788
>>103843285
What is the emacs way of drawing and animating graphics (raster and vector)?
What is the emacs way of drawing and animating graphics (raster and vector)?
Anonymous 01/13/25(Mon)15:16:21 No.103881799
>>103881631
let acts as a progn as well so it wont break after the first if and outputs the result of the last form evaluated, it does the if in line 2 first then does the if on line 3 which outputs NIL, you can format this better like this: (if (predicate) (if-true) (if-false))
let acts as a progn as well so it wont break after the first if and outputs the result of the last form evaluated, it does the if in line 2 first then does the if on line 3 which outputs NIL, you can format this better like this: (if (predicate) (if-true) (if-false))
(defun testFunc (input) (let ((myvariable input))
(if myvariable (format nil "ONE") (format nil "TWO"))))
Anonymous 01/13/25(Mon)15:22:46 No.103881886
>>103881799
>and outputs the result of the last form evaluated
ok, that makes sense, but why doesnt it print "ONE" before? when it executes the first if it should execute
>and outputs the result of the last form evaluated
ok, that makes sense, but why doesnt it print "ONE" before? when it executes the first if it should execute
(format nil "ONE")regardless of what it does afterwards
Anonymous 01/13/25(Mon)15:23:55 No.103881906
>>103881799
am i misunderstanding what "format" does maybe?
does it print to the console or does it just return a value?
am i misunderstanding what "format" does maybe?
does it print to the console or does it just return a value?
Anonymous 01/13/25(Mon)15:28:12 No.103881956
god i am fucking retarded
i passed "nil" as an argument to format, i was not printing to the standard output
i should have done this instead
this works as expected
i passed "nil" as an argument to format, i was not printing to the standard output
i should have done this instead
(defun testFunc (input) (let ((myvariable input))
(if myvariable (format t "ONE"))
(if (not myvariable) (format t "TWO"))))
this works as expected
Anonymous 01/13/25(Mon)15:47:10 No.103882184
>>103881956
Stylistically, consider naming functions and variables using kebab-case.
https://stackoverflow.com/a/17820138
Stylistically, consider naming functions and variables using kebab-case.
https://stackoverflow.com/a/1782013
Anonymous 01/13/25(Mon)15:50:00 No.103882218
>>103872664
That's what I needed for my two-pane dired workflow. Now I can copy or move things from pane to pane and Emacs makes the appropriate guess about the intended destination. Thanks, Prot.
(setq dired-dwim-target t)
That's what I needed for my two-pane dired workflow. Now I can copy or move things from pane to pane and Emacs makes the appropriate guess about the intended destination. Thanks, Prot.
Anonymous 01/13/25(Mon)15:50:50 No.103882228
>>103881631
>>103881956
If you're just learning lisp one way it differs is everything is an expression, so you could write (format t (if var "one" "two"))
>>103881956
If you're just learning lisp one way it differs is everything is an expression, so you could write (format t (if var "one" "two"))
Anonymous 01/13/25(Mon)15:56:07 No.103882302
i just wrote my first working program in CL! :D
>>103882184
yeah i gotta get into the habit
>>103882228
good idea thanks
(defun isDivisibleByThree (input) (= 0 (mod input 3)))
(defun isDivisibleByFive (input) (= 0 (mod input 5)))
(defun range (start end) (let ((i start)
(rangeList '()))
(loop while (<= i end)
do (progn
(setq rangeList (append rangeList (list i)))
(setq i (+ 1 i))))
rangeList))
(defun fizzBuzzOnce (input) (let ((isDivByThree (isDivisibleByThree input))
(isDivByFive (isDivisibleByFive input)))
(if (and isDivByThree isDivByFive) (format t "FizzBuzz"))
(if (and isDivByThree (not isDivByFive)) (format t "Fizz"))
(if (and isDivByFive (not isDivByThree)) (format t "Buzz"))))
(defun fizzBuzz () (loop for x in (range 1 100)
do (fizzBuzzOnce x)))
(fizzBuzz)
>>103882184
yeah i gotta get into the habit
>>103882228
good idea thanks
Anonymous 01/13/25(Mon)16:10:10 No.103882508
>>103882302
Congrats fizzbuzz anon (pls put your lets on a newline xd)
Congrats fizzbuzz anon (pls put your lets on a newline xd)
Anonymous 01/13/25(Mon)16:12:41 No.103882549
>>103882508
like this?
like this?
(defun fizzBuzzOnce (input)
(let ((isDivByThree (isDivisibleByThree input))
(isDivByFive (isDivisibleByFive input)))
;(format t "~a" isDivByFive)
(if (and isDivByThree isDivByFive) (format t "FizzBuzz"))
(if (and isDivByThree (not isDivByFive)) (format t "Fizz"))
(if (and isDivByFive (not isDivByThree)) (format t "Buzz"))))
Anonymous 01/13/25(Mon)16:41:20 No.103882927
>>103882549
Yes ty, my tism is sated
Yes ty, my tism is sated
Anonymous 01/13/25(Mon)17:27:48 No.103883479
https://youtu.be/n0h6su9m64w
Anonymous 01/13/25(Mon)18:36:31 No.103884130
>>103883479
emac
emac
Anonymous 01/13/25(Mon)19:14:11 No.103884455
>>103883479
god I wish I had a Camel Wide Filter
god I wish I had a Camel Wide Filter
Anonymous 01/13/25(Mon)19:20:49 No.103884528
does guile have something like prog0 in elisp?
basically instead of writing this:
(let ((result ...))
(some-side-effect)
result)
basically instead of writing this:
(let ((result ...))
(some-side-effect)
result)
Anonymous 01/13/25(Mon)22:49:38 No.103886525
lips
emac lips
emac lips
Anonymous 01/14/25(Tue)01:42:53 No.103887627
>>103884528
Just write a macro for that.
Just write a macro for that.
Anonymous 01/14/25(Tue)03:07:28 No.103888082
>>103884528
My elisp has prog1, prog2, and progn but no prog0. (Emacs 29.4 btw)
What version of Emacs are you running?
My elisp has prog1, prog2, and progn but no prog0. (Emacs 29.4 btw)
What version of Emacs are you running?
Anonymous 01/14/25(Tue)03:43:18 No.103888296
TRAMP is awesome. Eshell is awesome.
Any hacks/configs you do with these tools, anons?
Any hacks/configs you do with these tools, anons?
Anonymous 01/14/25(Tue)03:43:58 No.103888301
>>103888082
yes i meant prog1
yes i meant prog1
Anonymous 01/14/25(Tue)03:51:38 No.103888362
My emacs wouldn't start, because it was having difficulties connecting to elpa. I solved it by temporarily going into airplane mode so that all the network requests would immediately fail. Then I turned networking back on.
Anonymous 01/14/25(Tue)03:52:53 No.103888375
>>103888362
damn seems pretty retarded to make your emacs phone home, why did you do that
damn seems pretty retarded to make your emacs phone home, why did you do that
Anonymous 01/14/25(Tue)04:20:36 No.103888559
Anonymous 01/14/25(Tue)04:23:13 No.103888576
>>103888559
Nice. Remember to set org-agenda-start-day to a new value at the start of every month. There are many ways to go about doing that, but find a way that works for you.
Nice. Remember to set org-agenda-start-day to a new value at the start of every month. There are many ways to go about doing that, but find a way that works for you.
Anonymous 01/14/25(Tue)05:28:13 No.103889001
what do we thing about Janet?
Anonymous 01/14/25(Tue)05:36:25 No.103889044
>>103889001
There is no reason to use it over guile unless you want something more obscure and with fewer libraries so you can feel cool
There is no reason to use it over guile unless you want something more obscure and with fewer libraries so you can feel cool
Anonymous 01/14/25(Tue)05:37:14 No.103889049
>>103889001
A minoritized Clojure dialect for programs requiring a fast start-up time, better than Guile for embedding. Strange and often nonsensical syntax choices, arguably not a lisp.
A minoritized Clojure dialect for programs requiring a fast start-up time, better than Guile for embedding. Strange and often nonsensical syntax choices, arguably not a lisp.
Anonymous 01/14/25(Tue)05:39:45 No.103889058
>>103889049
>A minoritized Clojure dialect for programs requiring a fast start-up time, better than Guile for embedding.
babashka, is that you?
>A minoritized Clojure dialect for programs requiring a fast start-up time, better than Guile for embedding.
babashka, is that you?
Anonymous 01/14/25(Tue)05:42:16 No.103889069
Anonymous 01/14/25(Tue)05:43:22 No.103889075
>>103889044
would you say that guile has more or less libraries available than CL?
would you say that guile has more or less libraries available than CL?
Anonymous 01/14/25(Tue)06:06:03 No.103889204
>>103764260
no you can use VSCode or vim for example
no you can use VSCode or vim for example
Anonymous 01/14/25(Tue)06:16:36 No.103889283
>>103889069
Primarily because It doesn't use cons cell.
Primarily because It doesn't use cons cell.
Anonymous 01/14/25(Tue)06:22:10 No.103889316
>>103889283
that seems... rather minor?
i remember reading that in other lisps cons cells are just an illusion, it's all arrays once you compile
that seems... rather minor?
i remember reading that in other lisps cons cells are just an illusion, it's all arrays once you compile
Anonymous 01/14/25(Tue)06:22:41 No.103889322
>>103889283
every fucking day all day long.
>write code, do cool stuff and develop the ecosystem and not argue about language wankery challenge (impossible)
every fucking day all day long.
>write code, do cool stuff and develop the ecosystem and not argue about language wankery challenge (impossible)
Anonymous 01/14/25(Tue)06:24:57 No.103889337
>>103889075
Way less If you take into account Allegro/LispWorks, the primarily problem with Guile isn't the lack of libraries but rather how underdeveloped they are.
Way less If you take into account Allegro/LispWorks, the primarily problem with Guile isn't the lack of libraries but rather how underdeveloped they are.
Anonymous 01/14/25(Tue)06:31:51 No.103889379
>>103889337
>Way less If you take into account Allegro/LispWorks
wait, the libraries are implementation dependent?
>Way less If you take into account Allegro/LispWorks
wait, the libraries are implementation dependent?
Anonymous 01/14/25(Tue)06:33:07 No.103889385
>>103889316
>i remember reading that in other lisps cons cells are just an illusion, it's all arrays once you compile
No, your referring to CDR coding. Natively compiled code doesn't have the concept of arrays, all types are illusionary at this level.
>i remember reading that in other lisps cons cells are just an illusion, it's all arrays once you compile
No, your referring to CDR coding. Natively compiled code doesn't have the concept of arrays, all types are illusionary at this level.
Anonymous 01/14/25(Tue)06:41:17 No.103889453
>>103889379
Some, Common Lisp doesn't have standardized FFI or sockets/networking. You probably aren't going to bump into these libraries in the wild because they're more often than not both proprietary and expensive.
Some, Common Lisp doesn't have standardized FFI or sockets/networking. You probably aren't going to bump into these libraries in the wild because they're more often than not both proprietary and expensive.
Anonymous 01/14/25(Tue)07:15:28 No.103889686
https://joker-lang.org
Another Clojure Dialect, this time in Go.
Another Clojure Dialect, this time in Go.
Anonymous 01/14/25(Tue)08:09:03 No.103890015
We have too many fucking Lisps. Let's make a new one that unified them.
Anonymous 01/14/25(Tue)08:15:11 No.103890050
>>103890015
maybe name it common lisp, because it takes all the common traits found in the lisp ecosystem atm.
maybe name it common lisp, because it takes all the common traits found in the lisp ecosystem atm.
Anonymous 01/14/25(Tue)08:42:33 No.103890265
>>103890050
What a stupid name. Such a language is doomed to fail.
What a stupid name. Such a language is doomed to fail.
Anonymous 01/14/25(Tue)09:04:42 No.103890416
>>103888576
Thanks again. I added those lines to my dotfile, in the "defun dotspacemacs/user-config ()" section (I'm using spacemacs). So, if I understand correctly, once the month passes and it's February I will have to reload the dotfile, but that's it, right?
It will become problematic when we reach the end of the month, so I tried to get a custom interval like [T - 7d, T + 45d] and got it with these two lines in my user-config.
The second line is commented out, since it's already set in the super agenda view.
Many thanks!! I've waited for too long to make this change and now I feel much more confident. Have a nice week, anon!
Thanks again. I added those lines to my dotfile, in the "defun dotspacemacs/user-config ()" section (I'm using spacemacs). So, if I understand correctly, once the month passes and it's February I will have to reload the dotfile, but that's it, right?
It will become problematic when we reach the end of the month, so I tried to get a custom interval like [T - 7d, T + 45d] and got it with these two lines in my user-config.
The second line is commented out, since it's already set in the super agenda view.
(setq org-agenda-start-day "-1w")
;; (setq org-agenda-span 45)
Many thanks!! I've waited for too long to make this change and now I feel much more confident. Have a nice week, anon!
Anonymous 01/14/25(Tue)09:24:36 No.103890568
>>103884528
>>103888301
If you always discard the multiple returns like this I think its semantics are the same as prog1
>>103888301
(define (f x)
(values
x
(format #t "ok~%")))
> (f 2)
ok
2
If you always discard the multiple returns like this I think its semantics are the same as prog1
Anonymous 01/14/25(Tue)09:52:34 No.103890836
>>103890568
I mean just using the let like the original post works fine, that seems like a way more retarded way to do it desu. I was just wondering if there was a built in form like elisp that I couldn't find
I mean just using the let like the original post works fine, that seems like a way more retarded way to do it desu. I was just wondering if there was a built in form like elisp that I couldn't find
Anonymous 01/14/25(Tue)10:02:53 No.103890947
>>103890836
Apparently there's no built-in, altho other schemes have begin0 which is the same. It's a pretty short macro tho:
Apparently there's no built-in, altho other schemes have begin0 which is the same. It's a pretty short macro tho:
(define-syntax prog1
(syntax-rules ()
[(_ first rest ...)
(let ([return first])
rest ... return)]))
Anonymous 01/14/25(Tue)10:51:39 No.103891462
Anonymous 01/14/25(Tue)11:49:28 No.103892082