Earlier quoted context omitted.
For machine learning, it makes a lot of sense. Effectively, training is a function that returns a function, after all.
Oh yeah not disagreeing with that, just interesting because I'd never seen anyone rig up curried functions in scheme/lisp before as it obviously isn't default behavior in a traditional lisp. I'm assuming using some sort of wrapper function or macro.
Common Lisp Implementations in 2023
231–240 of 243 posts
Re: Common Lisp Implementations in 2023
#232Earlier quoted context omitted.
For machine learning, it makes a lot of sense. Effectively, training is a function that returns a function, after all.
Oh yeah not disagreeing with that, just interesting because I'd never seen anyone rig up curried functions in scheme/lisp before as it obviously isn't default behavior in a traditional lisp. I'm assuming using some sort of wrapper function or macro.
They have broken some argument lists into currying, that's all.
(define line (lambda (x)
(lambda (w b)
(+ (* w x) b))))
Firstly, it's not full currying; the w and b parameters are not separated from each other into different lambdas.These kinds of nested lambdas are not unheard of in Lisp and Scheme programming.
Lisps do not have automatic partial application. If you have a (f x y z) function, you cannot just call it (f 42) to partially apply it, to obtain a function which takes the y and z arguments. You have to do a clumsy thing with an explicit lambda like this: (lambda (y z) (f 42 y z)). There are macros for that, which can make it look like (op f 42) or what have you.
If you need partial application regularly over some functions, it may behave you to write the function in the curried style. Passing all the parameters becomes a bit less convenient:
((line 1) 2 3) ;; versus just (line 1 2 3)
but the partial application you want is a lot less verbose: (line 1) ;; versus (lambda (w b) (line 1 w b)).
So basically it looks like the authors may be after low-verbosity partial
application without macro assistance.Re: Common Lisp Implementations in 2023
#233Earlier quoted context omitted.
Oh yeah not disagreeing with that, just interesting because I'd never seen anyone rig up curried functions in scheme/lisp before as it obviously isn't default behavior in a traditional lisp. I'm assuming using some sort of wrapper function or macro.
The examples look like normal Scheme to me. There is nothing odd going on with custom macros. They have broken some argument lists into currying, that's all. (define line (lambda (x) (lambda (w b) (+ (* w x) b)))) Firstly, it's not full currying; the w and b parameters are not separated from each other into different lambdas. These kinds of nested lambdas are not unheard of in Lisp and Scheme programming. Lisps do no…
Re: Common Lisp Implementations in 2023
#234Earlier quoted context omitted.
recent events around Go show why, I am extremely glad that I never payed much attention to Go... What are you referring to? This is a literal question, not advocacy. I haven't been paying enough attention to know what you mean.
Someone proposed adding telemetry to the compiler. People reacted to this as they usually do to telemetry. Google reacted to this as they usually do to criticism.
Which is how? Not been folllowing them lately, for obvious reasons, so interested to know how they react these days.
Constructive non-egoistic non-spin engagement with the critics / stony silence with compressed lips / furious rebuttal / muttered denial and then look verbally down at the plebs while giving each other group-affirming backslaps in their posh pubs? With guilty looks in the mirror after the party and then downing some Valium to salve their conscience and get some sleep?
Re: Common Lisp Implementations in 2023
#235Earlier quoted context omitted.
For https, we can now use the newer Lisp Package Manager: https://gitlab.common-lisp.net/clpm/clpm (or use a mitm proxy: https://hiphish.github.io/blog/2022/03/19/securing-quicklisp... )
It looks interesting, however this is a bit scary: > WARNING: This software is BETA quality. I use it as my daily driver, but it is still a little rough around the edges and it may accidentally eat your files. And for QuickLisp, this is scary: https://github.com/quicklisp/quicklisp-client/issues/167#iss... > It would be good to do, but there's no straightforward path to do it. Implementations do not all provide HTTPS…
QL wants to do it portably, there are easy workarounds, but yeah…
(just saw https://github.com/rudolfochrist/ql-https)
Re: Common Lisp Implementations in 2023
#236Earlier quoted context omitted.
No you do not have to. ASDF knows where to find your ASD files: https://asdf.common-lisp.dev/asdf.html#Configuring-ASDF-to-f... Personally I use the (:tree (:home "dev/lisp")) form.
Thanks a lot for this actually. I just gave it a shot and it seems to have been the piece I've been missing.
Re: Common Lisp Implementations in 2023
#237Earlier quoted context omitted.
I assume you have some specific needs that couldn't be handled by open source Lisps like SBCL, CCL, etc?
I am also curious about this, what specific needs are better served by CL than Clojure or any Scheme / Racket? Starting a CL project in 2023 seems risky to me given that most libraries are stagnant. I would love to be proven wrong.
on the other hand i think the common lisp development culture is very different to the black box library plug&play culture of other languages. if you find that you like to extend/personalise libraries it is a great language and i find the code to be much more comprehensible than the libraries from other languages i use. of course this is all a bit more demanding on the developer but for me the rewards are worth it
Re: Common Lisp Implementations in 2023
#238Earlier quoted context omitted.
Could it be that most of the critical libraries are stable? Can you give an example of a necessary library that is stagnant?
CLSQL, most graphics toolkits or lisp-stat.
Re: Common Lisp Implementations in 2023
#239Earlier quoted context omitted.
recent events around Go show why, I am extremely glad that I never payed much attention to Go... What are you referring to? This is a literal question, not advocacy. I haven't been paying enough attention to know what you mean.
Someone proposed adding telemetry to the compiler. People reacted to this as they usually do to telemetry. Google reacted to this as they usually do to criticism.
Re: Common Lisp Implementations in 2023
#240Earlier quoted context omitted.
CLSQL, most graphics toolkits or lisp-stat.
for ORM people tend to use Mito. i think lisp-stat library is actually being developed. however one numerical cl library that doesnt get enough mention and is being constantly developed is petalisp for HPC https://github.com/fukamachi/mito https://lisp-stat.dev/ https://github.com/marcoheisig/Petalisp