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

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

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


[Advertise on 4chan]


File: M-x spook.jpg (224 KB, 586x733)
224 KB
224 KB JPG
schizo edition

>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

>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-thread (quote >>103105320))
>>
File: 1718665756246.jpg (90 KB, 600x600)
90 KB
90 KB JPG
meds
>>
File: super-2hu-bros.gif (134 KB, 512x512)
134 KB
134 KB GIF
>>103211044
mamma mia
https://github.com/gongo/emacs-nes
>>
File: 1727026438089694.png (5 KB, 346x68)
5 KB
5 KB PNG
>>
File: boomer.jpg (96 KB, 326x391)
96 KB
96 KB JPG
>>103224832
>On LISP’s approximate 21st anniversary, no doubt something could be said about coming of age, but it seems doubtful that the normal life expectancy of a programming language is three score and ten. In fact, LISP seems to be the second oldest surviving programming language after Fortran, so maybe we should plan on holding one of these newspaper interviews in which grandpa is asked to what he attributes having lived to 100.
https://www-formal.stanford.edu/jmc/lisp20th.pdf
>>
>>103224738
Giving names to kinds of loops (like map and reduce) was a big step forward in programming. What language did it first? What language implemented the first map function?
>>
>>103224832
In that time, they've been porting features from Lisp to their language of choice. Even macros exist in some non-Lisp languages. Those who know have appreciated the power of Lisp for a long time even if it's not their favorite.
>>
>>103224879
fuck youuuuuu I tried Elixir because I renamed my x-to-y-encoding.asd file containing DEFSYSTEMs to systems.asd and then (asdf:test-system "x-to-y-encoding/test") no longer worked and I got pissed
>>
File: art.png (84 KB, 675x1076)
84 KB
84 KB PNG
>>103220749
I kneel
https://github.com/misohena/el-easydraw/wiki/Screenshots
>>
>>103224929
Your parenthesis formatting is being punished by the Lisp gods.
https://softwareengineering.stackexchange.com/questions/99229/why-does-the-lisp-community-prefer-to-accumulate-all-the-parentheses-at-the-end
>>
File: TR-3B.jpg (632 KB, 2480x3508)
632 KB
632 KB JPG
(the-call-of-cthulhu)

https://guix.gnu.org/en/blog/2024/guix-user-contributor-survey-2024/
>>
>>103224929
>Elixir
Is this any good?
>>
>>103225144
performance is scripting-lang tier, but it's so damn comfy
even the webshitter frameworks are nice
>>
I love the idea of Guix, but it's too slow, clunky, and has too many rough edges to work as a daily OS. I felt like I was spending more time configuring my system than actually using it. Granted, I tried it about a year ago. Does anyone disagree? Is it just a skill issue?
>>
>>103225423
nah, i was on guix for a couple of months, packaged a ton of shit and eventually got tired of all the little issues building up (even something as small as flatpaks not having access to system fonts) and packaging more complex software
i just use it on top of a normal distro now
>>
>>103225144
I am very interested in it because:
- it has the niceties of a garbage collector, but due to running on the BEAM (which sounds fucking cool as hell btw), which was designed for soft realtime systems, the GC runs per-process and will never pause the world (it can do this because processes never share memory).
- has a solid standard library, and allows you to directly call on Erlang's standard library (which includes a bunch of shit, even Mnesia, an in-memory database that can also persist data to disk).
- concurrency/parallelism is integral to the language, and is represented via the actor model.
- distributed computing is integral to the language and communication across machines is no different than sending messages to local actors is.
- it is a very introspective environment, which leads to easy serialization (see https://hexdocs.pm/elixir/1.17.3/Macro.html#to_string/1), amongst other things (including live analysis of active systems).
- if you are into webdev, then apparently the Phoenix framework, when combined with Liveview, is one of the most pleasurable ways to implement webapps.
- Ecto is considered one of the best SQL interaction "frameworks" available, and supports migrations.
- if you run into a compute-heavy problem that involves lots of number crunching, then you can use Rustler in order to have the BEAM (FUCK I LOVE THAT NAME) directly interface with Rust via NIFs, or you can rawdog C if you feel masochistic. you can also easily send messages over an OS socket to a separate process too, of course.

it is of course a functional programming language, so recursion and such are a must. it also has entirely immutable data structures. I am like this so far, because it prevents me from trying to get very imperative and autistically speeding things up for code that might get ran 3x per day and will run for less than 5 seconds anyway. I have too many damn projects to work on to do that, and again, if I really do need speed, Rust NIFs exist.
>>
>>103225521
Sounds good, but why prefer it to Clojure?
>>
>>103225521
oh yeah it also has a wonderful implementation of pattern matching, which can be used with function guards in order to implement a form of multiple-dispatch, among other things
protocols exist too
>>
>>103225578
what's a protocol in this context?
>>
>>103225537
idk, never tried Clojure. the JVM scares me, and I think (you would have to confirm this yourself) consumes more memory than the BEAM.
also the JVM garbage collectors do have to pause the world at some point, which irks me, but is likely not a concern for most projects
>>
>>103225595
Like Clojure protocols.
https://hexdocs.pm/elixir/main/protocols.html
>>
File: 1569016242284.gif (83 KB, 640x640)
83 KB
83 KB GIF
Scheme!
>>
>>103225619
I hate it when devs choose technical but off topic terms because it makes their software look more sophisticated.
>>
File: satisfiedFrieren.jpg (154 KB, 1920x1080)
154 KB
154 KB JPG
https://clojure.org/news/2024/11/15/deref

#!/usr/bin/env bash
# Removes the annoying white borders from Conj videos

ffmpeg -i "$1" -vf crop=0.66*in_w:0.66*in_h:in_w*0.31:0.075*in_h -c:a copy "CROPPED_${1}"

# CUDA-accelerated version for ~20 times faster encoding:
# ffmpeg -hwaccel cuda -i "$1" -c:v hevc_nvenc -preset slow -vf crop=0.66*in_w:0.66*in_h:in_w*0.31:0.075*in_h -c:a copy "CROPPED_${1%.*}.mp4"
>>
>>103225521
JVM Clojure is a memory hog alright, but you can also compile it to JS or Dart and from there to native code (using bun for js) which cuts down on memory usage and start-up time significantly.

>>103225863
naming things is hard, sir
>>
I will never understand why the default is to have context-menu-mode turned off. Without it, the mouse is basically useless. I get that you shouldn't be using it anyway, but that doesn't explain making it useless.
>>
File: file.png (105 KB, 903x582)
105 KB
105 KB PNG
>>103226037
>naming things is hard, sir
in this case it appears not, see pic rel
even when it's hard, you don't pick another technical word that is heavily semantically loaded
>>
>>103225619
defprotocol Utility do
@spec type(t) :: String.t()
def type(value)
end

defimpl Utility, for: BitString do
def type(_value), do: "string"
end

defimpl Utility, for: Integer do
def type(_value), do: "integer"
end

> Utility.type(123)
"integer"
> Utility.size(123)
** (Protocol.UndefinedError) protocol size not implemented


This example in Lisp is just

(protocol Utility
(define (type value))

(dispatch string?
(define (type value) "string"))

(dispatch integer?
(define (type value) "integer"))

;; gets macro-expanded to something like:

(define (Utility procedure . parameters)
(match procedure
[type
(match parameters
[(? string?) "string"]
[(? integer?) "integer"])]
[_
(error "~a not implemented" procedure)]))

> (Utility type 123)
"integer"
> (Utility size 123)
size not implemented
>>
>>103224929
>>103225144
>>103225306
>>103225521
Don't talk about a nonlisp language in the lisp general.
>>
>>103227349
may I present Lisp-Flavored Erlang to you, my good sir: https://lfe.io/
>>
>>103227383
That's for Erlang not Elixir.
>>
File: 1723314441229931.gif (1.17 MB, 360x270)
1.17 MB
1.17 MB GIF
>>103227427
they are the same thing, pretty much
>>
>>103227349
Elixir is a very lispy language though
Reminds me of OpenDylan
>>
Why would I ever use
 C-x . 
?
>>
>>103227611
I think it was useful back in the day when you wanted to reflow quoted paragraphs in plaintext emails or usenet posts.
>>
>>103227909
So suppose that I'm copy and pasting from a PDF
file with bullshit
line breaks like this
and I want it nice and tidy
is that what you have in mind?
>>
>>103227964
- Take this long line with a leading "->" at the front.
-> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- Put your cursor on the first capital "L" and hit `C-x .`.
- Select the whole line.
- Do `M-x fill-paragraph`.

End Result:
-> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
-> eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
-> ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
-> aliquip ex ea commodo consequat. Duis aute irure dolor in
-> reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
-> pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
-> culpa qui officia deserunt mollit anim id est laborum.


Instead of "-> " that leading text could be all kinds of things. Usually it was ">" like our
>greentext
today, but some people did their own non-standard way of quoting other people's texts. I guess Emacs catered to those kinds of people.
>>
>>103227964
If you want those line-breaks to be joined into one line, you probably want unfill.
https://melpa.org/#/unfill
https://github.com/purcell/unfill
>>
>>103227589
It even has macros.
https://elixirschool.com/en/lessons/advanced/metaprogramming
>>
>>103225423
i use it as my daily os on my main laptop. it took a lot of work to get happy with the config but i’m finally there. guix documention is great but i think there should be some better template configs that take advantage of newer features and best practices.
i’ve been working on trying to simplify/depersonalize my config to be shared as a sort of starter kit.

guix still isn’t ready for all use cases imho though, so ymmv. but i kind of think it’s more ready than you would immediately assume just reading the manual if that makes sense.
>>
>>103225611
The JVM's memory consumption is not as linear as the BEAM's with the number of threads. I guess that for intense workloads you'll see the JVM consume less memory than the BEAM.
If you like actors that's another matter. OTP is also full of good ideas so I'm not hear to bash the platform.
Hickey did have some good arguments against pattern matching.
For one off scripts just use whatever you like but consider babashka has smaller footprint than a JVM Clojure process and starts faster.
>pauseless collection
Look man, if you need GC with sub 10ms pause, I want to work on whatever you're working.
Modern GCs on the JVM aren't perfect, but they're pretty neat. You can pay Azul for C4 if you want real pauseless GC.
>>103227383
or Clojerl
https://github.com/clojerl/clojerl
>>103227427
They're the same thing, retard-kun
>>
>>103228416
What variant of lisp is this?
>>
File: (run-gcc).jpg (129 KB, 1000x859)
129 KB
129 KB JPG
>>103229552
https://gcc.gnu.org/onlinedocs/gccint/RTL.html
>>
>>103229597
That's wild
>>
R is literally scheme with S syntax.
>>
>>103224728
>schizo edition
As opposed to all of the others?
>>
>>103230317
It really isn't. It's the closest C-like language to Scheme and was heavily inspired by Scheme, but it's fundamentally different from Scheme in many ways. For example, you would rape to death a Scheme implementation that recycles vectors like R does.
>>
When you get executed lazily, you don't really die until you actually try to live
>>
File: 1684981384535397.jpg (37 KB, 555x463)
37 KB
37 KB JPG
>>103225035
i took the survey
>>
>>103230317
>praising R
>>
>>103225423
my guix experience has been lots of unexpected behavior and a lack of features. I can give you a very pessimistic review
>no system-wide package parameterization
>no modular operating system definitions
>clunky object inheritance
>inherit package with new version number, package doesn't actually use new version
>inherit OS, add new services, unable to recompile due to duplicate services
by the way, pull is ass slow because it recompiles the entire guix repository, and you can't distribute/mirror that compiled guix to other local machines either. that problem is only going to get worse as guix gets bigger.
>>
>>103232121
>>no modular operating system definitions
>>clunky object inheritance
>>inherit OS, add new services, unable to recompile due to duplicate services
I created macros to work around that but I really shouldn't have to, if declaring the OS config in a programming language is part of the selling point, it should be modular out of the box.
>>
>>103232144
I did the same but with functions instead of macros, and I did it poorly because I didn't know much scheme at the time
nixos modules do it right, I don't want to be a nixxer shill in the lisp thread again but it just werks
>>
>>103228249
>M-x fill-paragraph
M-q

>>103224929
>I renamed my x-to-y-encoding.asd file containing DEFSYSTEMs to systems.asd and then (asdf:test-system "x-to-y-encoding/test") no longer worked and I got pissed
Lmao

>>103226108
By default Emacs uses more Acme-like binds for the mouse.
>>
>>103225898
very naisu
clojurechads eating good
>>
>>103232121
>inherit package with new version number, package doesn't actually use new version
huh?
>>
File: Flesh_Lunch_式.jpg (1.36 MB, 3474x3472)
1.36 MB
1.36 MB JPG
>>103234657
McDonald's burgers and fries suck

some of their breakfast items are pretty nice though
>>
File: whiteborders.jpg (119 KB, 1080x632)
119 KB
119 KB JPG
>>103225898
>some videos have the content window at different offsets
aww man.
Guess I'll have to either set the dimensions manually or look for (or write) a program that can do this sort of edge detection
>>
>>103234755
(package
(inherit emac)
(version "9001")))

doesn't work
>>
>>103236467
guix doesn't know where the source for emac 9001 is, you actually want to change the source field.
https://guix.gnu.org/manual/devel/en/html_node/Defining-Package-Variants.html
or you can use options->transformation, which tries to guess, but sometimes fails
>>
>>103237162
>sometimes fails
>involves input rewriting
not surprised, input rewriting ashit
>>
>>103228296
>>103145937
>unfill
Where have you been all of my life?
>>
>>103237162
>https://guix.gnu.org/manual/devel/en/html_node/Defining-Package-Variants.html
Pretty gud
>>
Fuck me. I apparently haven't opened The Land of Lisp since June.
>>
I just discovered `C-x 5 5` other-frame-prefix. If you hit that before doing a command that opens a buffer, the buffer will be opened in a new frame. (I need to find a more ergonomic binding for this.)
>>
>>103240627
Don't forget other-window-prefix and other-tab-prefix.
>>
>>103240860
I didn't even know, but I will make use of those too. I may use key-chord to make them easier to input.
https://github.com/emacsorphanage/key-chord
>>
I need help. Emacs doesn't render text from `url-retrieve' correctly. I already state that I want utf-8 in my init file.
(set-language-environment 'utf-8)
(set-keyboard-coding-system 'utf-8)
(setq locale-coding-system 'utf-8)
(setq-default buffer-file-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-selection-coding-system
;; https://stackoverflow.com/questions/2901541/which-coding-system-should-i-use-in-emacs#comment20730840_2903256
(if (eq system-type 'windows-nt)
'utf-16-le
'utf-8))
(prefer-coding-system 'utf-8)


But the following snippet still give me weird encoding for French's funny characters.
Ex. "Les misérables" becomes "Les mis \308\251rables"

;; -*- lexical-binding: t; -*-
(let ((cb (current-buffer))
(url-request-method "GET")
(url-request-extra-headers `(("accept" . "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
("Content-Type" . "text/plain; charset=utf-8"))))
(url-retrieve "https://www.gutenberg.org/cache/epub/17489/pg17489.txt"
#'(lambda (status)
(let ((content (encode-coding-string (buffer-string) 'utf-8)))
(switch-to-buffer cb)
(insert content)))))
>>
File: 1631121587540729857_1.jpg (194 KB, 1080x1109)
194 KB
194 KB JPG
>>103241914
You were so close.
- I changed encode-coding-string to decode-coding string.
- I also took the liberty to (delete-trailing-whitespace) to get rid of all the ^M in the output.
(defun gutenberg ()
"Fetch text from Project Gutenberg and insert it into the current buffer."
(interactive)
(let ((cb (current-buffer))
(url-request-method "GET")
(url-request-extra-headers `(("accept" . "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
("Content-Type" . "text/plain; charset=utf-8"))))
(url-retrieve "https://www.gutenberg.org/cache/epub/17489/pg17489.txt"
#'(lambda (status)
(let* ((_ (delete-trailing-whitespace))
(content (decode-coding-string (buffer-string) 'utf-8)))
(switch-to-buffer cb)
(insert content))))))
>>
>>103242228
Oh, what a brain fog can do! Thank you.
>>
>>103242357
>brain fog
I fall victim to this more than I care to admit. Stepping completely away from all computing devices (even for a few minutes) can help.
>>
>>103242385
I found that bad air and flouride gave me brain fog, so now I try to get fresh air from the outside and I brush my teeth an an hour before bed so i can spit a lot.
It also helps a lot to keep mentally active
>>
>>103242577
I've been using flouride-free toothpaste for years. I don't want this chemical to accumulate in my pineal gland.
https://www.mdpi.com/2076-3417/10/8/2885
>>
arei or geiser?
>>
>>103230317
>S syntax
lulwut
>>
>>103244943
One of the main differences between S and R is that R has scheme lexical scoping rules. Someone posted a paper by ihaka a couple of threads ago explaining that.
>>
>>103242385
I used to suffer from brain fog a lot and later found out that I had early-stage type 2 diabetes.
Cutting fructose/sucrose out of my diet, intermittent fasting and doing a few minutes of calisthenics every day got my blood sugar down to normal levels.
>>
I'm >>103241914 but I got a similar problem.
The text was already rendered incorrectly before I call `buffer-string' in the `let' form. I confirm this by using `curl' to request from a terminal; the text `curl' received is "fran\u00e7aises."
But when I requests from Emacs, `(buffer-string)' gives me "fran?aises."
>>
good morning sirs
>>
what are you boomers using this glorified calculator scripting language for in modern day anyway? from this thread I can only assume Emacs scripting or Guix/NixOS scripting.
it's like having a thread for just Lua as a whole, a language which is pretty useless on it's own.
>>
>>103225537
Developer experience. If I wasn't predisposed to enjoying lisps, I'd probably use Elixir or F# more.

Setting up Clojure is kinda ass, especially because some projects are using Leiningen, others deps.edn. Elixir is more consistent, and for what a lot of people are doing, Phoenix provides a standard that Clojure doesn't really have.

Clojurescript is also a dumpster fire of trying to keep up with React badly.
>>
>>103222605
>>https://en.wikipedia.org/wiki/Monad_(Gnosticism)
>Uhh bros?

https://www.youtube.com/watch?v=oNFRPpIuEKk
>>
>>103246858
> glorified calculator scripting language for in modern day anyway?
wrong thread, we don't deal with C-- or java here
>>
>>103246858
>glorified calculator
That how I affectionately refer to assembly.
>>
>>103246858
I, too, would like to know this. iirc the first jack and daxter had some common lisp
>>
>>103246951
I agree, Clojure's kind of ass UX-wise, you either try doing things ezmode style with lein or learn deps.edn, etc. And even then you still kind of have to bear the fact that it's a hosted language in mind whenever you fuck something up and get a stacktrace that doesn't tell you anything useful unless you Already Know what they mean within the Clojure abstraction atop the jvm.

I've actually been thinking of just biting the bullet and programming in CL, but CL's not functional and it's missing Clojure's syntactic sugar with the square braces and whatnot. It's kind of a shame because I really like how lisp can work as a kind of lingua franca, where knowing one means you know most of all the rest. But lisps, at least from my perspective always seem to suffer from some kind of fatal glitch - CL's kind of old and I'm not sure what its 'best practices' for things actually are - Clojure's error messages leave a lot to be desired. - Julia's nice but it's just a glue lang for C - I hear Racket's good, but then I never really see anything built with it.

I feel like the Lisper is doomed to simply accept the warts 'pon his favoured dialect and use it as their hobbylang of choice. We are martyrs on the altar of Algol.
>>
>>103247548
>and I'm not sure what its 'best practices' for things actually are
just do it? Most people use CLOS or just do whatever. Learn how to use ASDF and the world is your oyster.
>>
>>103246951
yeah, my plan was to learn just a little bit of Dart so I could use ClojureDart effectively, yet now I just do all my Android and GUI stuff in pure Dart because the tooling is so much easier to use.
>>
>>103246951
>I'd probably use Elixir or F# more
do those languages have REPL support similar to what we have with CIDER though?
That's one of the things I just wouldn't want to do without anymore
>>
>>103247880
Elixir has IEX but it is nowhere near the level of Common Lisp, with its retaining of the entire callstack/state upon erring.
>>
>>103247548
It's a shame. Actually working in Clojure is quite nice, but the fractured build tools and decision fatigue of as a beginner figuring out which of set of similar libraries actually makes sense to use really sucks.

It seems doomed, however. The community isn't growing, so there's no push for good UX for beginners (which trickles up into making things less tedious for experts) the same way Elixir for example has with its ex-Rails guys.
>>
>>103247548
Neil has made deps.edn useable for me
>>
>>103246951
>Setting up Clojure is kinda ass, especially because some projects are using Leiningen, others deps.edn
It's not *hard*, but it's certainly not easy. Maybe simple ;)
Most projects today use deps.edn. I'm not even sure it's easier to start with lein, as a working deps.edn file is just `{}`, but there are certainly more moving pieces.
I must say I've had to wrangle and fight lein one too many times to want to ever use it again. Some people whose opinions I appreciate still use it. Conclusion? Clojure people care about UX less than Elixir devs do.
Have you looked at Neil? It's a convenient lein like tool for deps
https://github.com/babashka/neil
Phoenix is impressive, true, but have you looked at Electric Clojure? It can do things other languages can only dream of.
Besides the UX of setting up Clojure projects, the DX is great, especially with CIDER.
And I must say I enjoy how permissive / loosey goosey deps is. You can have source dependencies. Dependency coordinates can be in git, file system or maven. You can override dependencies with local dependencies. You can add dependencies live to a running process.
IDK man it's quite cozy.
>>
why do lispers hate clojure?
>>
>>103249402
>electric
https://tana.pub/lQwRvGRaQ7hM/electric-v3-license-change
i was telling my colleagues about it a week before this announcement to see if i can weasel it into our next project
still mad
>>
>>103245963
Bump.
>>
>>103251951
Probably the problem is on my request header.
I use the modified version of url-http-create-request from https://www.cnblogs.com/yangwen0228/p/6238528.html
This makes the utf-8 header encoded as us-ascii, so it's possible that the request to the API is fucked from the start; that's why the API return ? in place of utf-8 characters. Investigating.
>>
>>103250611
I dislike it but Dustin and his team have to eat, man
>>
File: erlang.jpg (289 KB, 1500x1500)
289 KB
289 KB JPG
>>103228655
>https://github.com/clojerl/clojerl
Interesting (つω)つ
>>
>>103247548
>Julia's nice but it's just a glue lang for C
Pervasive multimethods makes program design in Julia really interesting. The polymorphism feels so fine-grained, and it doesn't break or get awkward like in classical OO languages. Julia rejects OO but has tons of polymorphism.
>>
>>103253178
I fixed it. The problem is the line
(unless (= (string-bytes request)
(length request))
(error "Multibyte text in HTTP request: %s" request))

in the function `url-http-create-request'.
Comment it out, encode the input, and decode the output make the result renders correctly now.
>>
Good morning sars, the bookmark list elides names very soon, even with space in the buffer/screen.
>BUG: Line where thing happens because of this and that
Turns into
>BUG: Line where thing ...
Is there a way to fix it?
>>
>>103250142
the Curse of Lisp is individualism
brb writing new Lisp dialect, they all suck
>>
File: 1700743047529340.gif (896 KB, 320x262)
896 KB
896 KB GIF
>>103224728
>wrote my first lisp interpreter
It can only do the most basic operations, but I'm very happy. Adding more stuff will be easy.
>>
>>103258064
good job, anon. what dialect is it based on?
>>
>>103247548
>Clojure's error messages leave a lot to be desired.
Maybe I'm just jaded by Spring stack traces that demand a vertical monitor, but I don't find Clojure error messages that bad.
>>
>>103258512
It's so barebones that I can't answer that.



[Advertise on 4chan]

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

[Enable Mobile View / Use Mobile Site]

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