Lisp
- www.moclojer.com Essential tips for developing with Clojure
Discover essential tips and best practices for optimizing your Clojure development workflow, focusing on command line tools and efficient coding techniques.
-
Legit: Magit-like package for Lem
lisp-journey.gitlab.io Oh no, I started a Magit-like plugin for the Lem editor - Lisp journeyLem is an awesome project. It’s an editor buit in Common Lisp, ready to use out of the box for Common Lisp, that supports more languages and modes (Python, Rust, Elixir, Go, JavaScript, TypeScript, Haskell, Java, Nim, Dart, OCaml, Scala, Swift, shell, asm, but also markdown, ascii, JSON, HTML ...
-
lisp job: senior Common Lisp Developer | 3E, Brussels
jobs.3e.eu Common Lisp Developer | 3EAt 3E, we recognize the value of Common Lisp and the unique skills that developers in this language bring to the table. We are currently seeking a senior Common Lisp developer with at least 5 years of work experience in an operational environment...
-
To what extent can Datalog queries match SQL queries?
I'm about to start a personal project and I'd love to use XTDB, but I'm not quite sure I should use it instead of a SQL db like eg. Postgres. The reason why I'm not sure is that I don't know if I'll be able to write complex queries in Datalog that I'd otherwise with SQL. I know this is kind of an open-ended question, but is it possible to write complex queries with joins and aggregations in Datalog? Or perhaps a better question is, what are the things that Datalog cannot do that SQL can?
-
Learning Resources for emacs
Seems as if one wants to learn lisp, one has to learn emacs first. That said, I am looking for resources for the absolute beginner to learn emacs, looking for something along the lines of Common lisp A gentle introduction to symbolic computation., but for emacs. Something that assumes you know nothing, starts at the absolute beginningwith lots of exercise and answer to those exercise. Any help will be appreciated. Thanks
-
Learning resources for emacs
Seems as if one wants to learn lisp, one has to learn emacs first. That said, I am looking for resources for the absolute beginner to learn emacs, looking for something along the lines of Common lisp A gentle introduction to symbolic computation., but for emacs. Something that assumes you know nothing, starts at the absolute beginningwith lots of exercise and answer to those exercise. Any help will be appreciated. Thanks
-
CL newbie questions
- A program, written in CL, is a huge mutable state. It seems that one can redefine nearly every symbol and there is no immutable data structures. But, as far as I understand, one can modify the language by using macros. So, is it possible to create a macro, which protects data structures from mutation or forbids the usage of mutable operators. For example:
(defmacro with-immutable-scope (&body body) ...) (with-immutable-scope (let ((q (list 1))) (setf q 1))) => compilation error
- A public interface of a CL package consists of symbols. How can I specify and find out, what a symbol from a different package refers to? Should I do the following:
To specify what I export:
(defpackage :foo (:use :cl) (:export ;; macros :with-immutable-scope ;; functions :fetch-data ...
To find out what I import:
(describe fetch-data)
- When I create a variable binding with \``let
\
and then modify the variable, this modification doesn't propagate through the binding. Example:
(defstruct point x) (let* ((point-obj (make-point :x 1)) (x-ref (point-x point-obj))) (setf x-ref 2) (point-x point-obj)) ;; => returns 1 because setf changed the reference to point-x but not the point-x itself
Does it mean that the let-bindings are effectively read-only pointers?
- How can I remove a method, which was previously associated with a generic function? For example:
(defgeneric foo (x)) (defmethod foo ((x list)) "list") (defmethod foo ((x integer)) "integer") (fmakeunbound-for-clos-methods '(foo (x integer))) ;; <- need help here (foo '()) ;; => "list" (foo 1) ;; => NO-APPLICABLE-METHOD-ERROR
Does \``fmakeunbound-for-clos-methods
\
exist ? -
Does category theory have concepts that works well in Clojure?
Hi guys, I was wondering if there were some concepts in category theory that'd be practical/pragmatic to be used in Clojure. Ik that category theory can sometimes get too abstract such that it will be confusing or straight up not optimal in Clojure. But still i thought there might be some concepts that were practical and might fit well into Clojure. So if anyone here have good experience with category theory or ml have you discovered some design patterns/concepts that are a good fit for Clojure
-
LQML now on SailfishOS (using Qt5.15 libs)
Please see readme-sailfish.
This uses the Qt5.15 meta packages, and needs an app called qt-runner for launching the apps in a separate wayland client, providing also the SailfishOS keyboard.
So, it's not 'native' in the look & feel sense (no Sailfish specific QML items available), but allows basically any Qt5.15 compiled app to run on SailfishOS, which is great news!
Obligatory screenshot: cl-repl-sailfish
-
Announcing Clojure API for Rama: build end-to-end scalable backends in 100x less code
We've just released a first-class Clojure API for Rama. Rama is a new programming platform we released in August that enables end-to-end scalable backends to be built in their entirety in 100x less code than otherwise. It's a "programmable datastore on steroids" where you mold your datastore to fit your application rather than the other way around. The introductory blog post to the Clojure API culminates in building a highly scalable auction application with timed listings, bids, and notifications in only 100 LOC.
-
Comparison of a counter in racket-scheme and sbcl-lisp
A counter in racket-scheme:
``` #lang typed/racket
(define my-counter! (let ([t 0]) (lambda () (set! t (+ 1 t)) t);lambda );let );define (print (my-counter!)) (print (my-counter!)) ```
A counter in sbcl-lisp:
``` load "~/quicklisp/setup.lisp")
(declaim (optimize (speed 3) (safety 3)))
(let ((c 0)) (defun my-counter! () (lambda () (setf c (+ 1 c)) c); lambda ) ;defun ) ;let
(defun main () (print (funcall (my-counter!))) (print (funcall (my-counter!))) )
(sb-ext:save-lisp-and-die "test.exe" :toplevel #'main :executable t)
```
Could someone elaborate why i need "funcall" in lisp and not in scheme ? And why the different placing of let ?
-
AI-augmented user interface
I had the honor and the pleasure to demo an AI-augmented user interface during a recent meetup. Since the demo is online and publicly available, I am inviting anyone who might be interested to try it out. The audience for this demo is, I'd venture to say, front-end developers, designers, and photographers.
As an amateur photographer myself, I frequently post photos on social media. There are lots of forums out there, and it becomes quickly apparent that different communities have different rules as to how a post should look like. For example, subreddits often require that the type of lens be mentioned in the title. Posts need to be tagged differently if the image is straight from camera (SOOC) or post-processed. Crafting a post isn't terribly difficult, but some details can be gleaned from the embedded EXIF data in a more reliable way than from the shooter's memory. Also, I wanted to see how helpful image recognition could prove in this context.
So I set out to build a user interface that only requires one action from the user: uploading a photo. All the rest is done via asynchronous requests that integrate with the UI. EXIF data is extracted on the server, AI-generated tags come from a third-party image recognition service. The challenge is to display the information seamlessly, as it comes in from the various sources, without startling the user.
Here is the demo. Special thanks to Scicloj for hosting me with grace and kindness. If you're not familiar with that organization yet, check it out.
Have you tried uploading a photo from your own devices/cameras? What are your thoughts? Is there something you would have done/seen differently? Please let me know.
-
Private constants & breaking private functions in Clojure
YouTube Video
Click to view this content.
-
Racket Mode users: Want to try “racket-hash-lang-mode”?
racket.discourse.group Racket Mode users: Want to try "racket-hash-lang-mode"?I have a long-running topic branch, hash-lang, on which I've been exploring how to use #lang supplied colors and indent. Instead of this dragging on for N more years, I'd really like to merge it soon. I've been working on it a lot the last couple months. Why so long My main concerns have been arou...
-
Rediscovering the Joy of Math: A Journey with Lisp
Hello everyone!
I apologize for the consecutive posts and any disturbance caused. I've written an article about why I'm passionate about Lisp development. If you're interested, please take a look. Thank you Rediscovering the Joy of Math: A Journey with Lisp | by Kenichi Sasagawa | Oct, 2023 | Medium
-
Rediscovering the Joy of Hardware Hacking with Raspberry Pi and Lisp
Hello everyone.
I wrote an article reminiscing about my childhood when I used to build radios and amplifiers. Please take a look if you're interested. Rediscovering the Joy of Hardware Hacking with Raspberry Pi and Lisp | by Kenichi Sasagawa | Oct, 2023 | Medium
-
Added a chapter on Anthropic APIs to my Common Lisp book
I just added a short chapter on using the Anthropic completion API to my Common Lisp book. Here is a link to the start of the new material https://leanpub.com/lovinglisp/read#leanpub-auto-using-the-anthropic-claude-llm-completion-api
If you have been using OpenAI’s APIs from Common Lisp and want to try using Anthropic, this new material should save you a few minutes work getting setup.
-
Discussion on linear-algebra library and other libraries for lisp-stat by developers
If you are interested in linear-algebra and numerical computing in general or use the libraries in lisp-stat, a discussion on the future direction of the libraries has been started within the linear-algebra library. Feel free to comment and suggest.
-
How to compare r6rs-standard & ansi-common-lisp
What are the strengths , weaknesses. How to compare sbcl with clojure
- racket.discourse.group Call for Participation: RacketCon 2023
We are heading into October, with just under a month to go until RacketCon 2023. This means that we can confidently and proudly Call For Your Participation at the event. We have lined up a great list of speakers; just take a look at the RacketCon homepage to see who's coming. (And stay tuned, b...
-
Gerbil v0.18-rc1
Gerbil v0.18-rc1, the first release candidate for Gerbil v0.18 is ready!
- Release announcement: https://github.com/mighty-gerbils/gerbil/discussions/983
- Release tag and changelog: https://github.com/mighty-gerbils/gerbil/releases/tag/v0.18-rc1
Happy Hacking!
-
ANN ClojureScriptStorm, a ClojureScript dev compiler for FlowStorm
Happy to share the first release of ClojureScriptStorm, a dev compiler that tries to bring the same experience as ClojureStorm does for Clojure (automatic instrumentation) to ClojureScript.
This dev compilers are created to improve the experience of using FlowStorm but are not coupled to it, so other tooling can be built on top of them.
It is a fork of the official ClojureScript compiler, with a patch on top to enhance it with automatic instrumentation. It currently supports cljs.main and shadow-cljs.
Here is the new user guide entry .
If you want to try it, be aware that it requires shadow-cljs >= 2.25.4
The current coordinates are
com.github.jpmonettas/clojurescript {:mvn/version "1.11.60-2"}
which applies the patch over 1.11.60 and the latest FlowStorm iscom.github.jpmonettas/flow-storm-dbg {:mvn/version "3.7.5"}
The project is currently hosted here
If you want to use it for your own tooling, take a look at the current tests :
-
London Clojurians Talk: Matrix Exposed! (or, You Don't Know Reactive) (by Kenny Tilton)
YouTube Video
Click to view this content.
-
Teaching kids Clojure + mathematics
Hi folks,
is anyone of you teaching their kids Clojure as I do? A couple of years ago I decided to home school my kids because I wanted to teach them programming in a lispy language in conjunction with mathematics as early as possible (7+ years of age, after finishing their first year in the elementary school). So, I made a private course for my kids and created a series of hand-drawn comic textbooks full of maths combined with all the lispy goodness.
I thought it would be a nice experiment as I was not sure if the concept of LFL—Lisp as First (programming) Language can really work. You know, there are these theories that before fully appreciating a lispy language, you have to experience the horrors of ‘garbage languages’ first… Also, Clojure is not exactly a pedagogical language, is it? At some point, I was thinking about creating my own Lisp dialect for the purpose. But I wanted something to support functional approach, lazy evaluation, and having a collection of nice data structures, so why bother making another language if Clojure suits my needs (almost) perfectly (there are some features that I do not like that much but I guess nothing is perfect) and, yes, my spare time was also a limiting factor.
I have been doing this for five years now and it has been a fascinating journey. I really like how it works together with teaching maths and boosts abstract thinking. Some of my friends showed interest in what I was doing (apparently, they wanted the same fine education for their kids), so I decided to make an official series of books, the first was just published and can be purchased on Lulu (the plan is to make 3 volumes per year). In addition to that, I will be posting ‘my pedagogical notes’ (and later problem-oriented web-based programming environments) on Patreon for those who would like to follow this path. This project takes a substantial amount of my time, so any support from you fellow lispers is highly appreciated!
Project home with book preview: https://prog-mat.com
Any thoughts?
-
Lisp Ireland, August Meetup - A Tour of Common Lisp (Part 2)
YouTube Video
Click to view this content.
-
I wrote an article about Lisp, Lambda Calculus and why they blew my mind as a new comer
itsbehnam.com Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.A new tool that blends your everyday work apps into one. It's the all-in-one workspace for you and your team