184 Followers
434 Following
3.8K Posts
norze.world is closing down. I moved to @veer66
Norze World

After refactoring,

(defun diff-snode-by-range (snode r) (loop for r1* in snode nconc (diff-range r1* r))) (defun diff-range-by-snode (r snode) (reduce #'diff-snode-by-range snode :initial-value (list r))) (defun diff-snode-when-snode2-is-not-null (snode1 snode2) (sort (loop for r1 in snode1 nconc (diff-range-by-snode r1 snode2)) #'< :key #'(lambda (r) (cdr (assoc :s r)))))

Yesterday, I thought I will forget what I wrote next week. I’ve forgotten it already.

(defun diff-snode-when-snode2-is-not-null (snode1 snode2) (let ((snode1* '())) (loop for r1 in snode1 do (let ((r1s (list r1))) (loop for r2 in snode2 do (let ((r1s* '())) (loop for r1* in r1s do (let ((r3s (diff-range r1* r2))) (loop for r in r3s do (setq r1s* (cons r r1s*))))) (setq r1s r1s*))) (setq snode1* (nconc snode1* r1s)))) (sort snode1* #'< :key #'(lambda (r) (cdr (assoc :s r))))))
I'm back.

I try to emulate Clojure’assoc on Common Lisp’s alist. #commonlisp #lisp #assoc #alist

(defun assoc* (m k v &key test) (acons k v (remove-if (lambda (i) (if test (funcall test (car i) k) (eq (car i) k))) m)))
Norze World

.emacs 2022-06-10

(require 'package) (setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/") ("nongnu" . "https://elpa.nongnu.org/nongnu/") ("melpa" . "https://melpa.org/packages/"))) (add-hook 'emacs-lisp-mode-hook #'enable-paredit-mode) (add-hook 'lisp-mode-hook #'enable-paredit-mode) (add-hook 'lisp-interaction-mode-hook #'enable-paredit-mode) (add-hook 'after-init-hook 'global-company-mode)

Even without static typing, SBCL warns me when I type an incorrect variable name. The thing is that I need to read warnings. #commonlisp

; compilation unit finished ; Undefined variable: ; LINK ; caught 1 WARNING condition ; caught 1 STYLE-WARNING condition

Norze World

Emacs failed to verify TLS certs. So I installed GNUTLS, Nettle, Idn, and Unistring.  

#!/bin/bash export PKG_CONFIG_PATH=$HOME/lib64/pkgconfig:$HOME/lib/pkgconfig export LD_RUN_PATH=$HOME/lib:$HOME/lib64 export LD_LIBRARY_PATH=$HOME/lib:$HOME/lib64 export LDFLAGS="-L$HOME/lib -L$HOME/lib64" rm -rf libunistring-1.0 libidn2-2.3.2 nettle-3.6 gmp-6.2.1 emacs-28.1 curl https://ftp.gnu.org/gnu/libunistring/libunistring-1.0.tar.gz | tar -xzvf - && \ pushd libunistring-1.0 && \ ./configure --prefix=$HOME && \ make -j `nproc` && \ make install && \ popd || exit 1 curl https://ftp.gnu.org/gnu/libidn/libidn2-2.3.2.tar.gz | tar -xzvf - && \ pushd libidn2-2.3.2 && \ ./configure --prefix=$HOME && \ make -j `nproc` && \ make install && \ popd || exit 1 curl https://ftp.gnu.org/gnu/nettle/nettle-3.6.tar.gz | tar xzvf - && \ pushd nettle-3.6 && \ ./configure --prefix=$HOME --enable-mini-gmp && \ make -j `nproc` && \ make install && \ popd || exit 1 curl https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7/gnutls-3.7.6.tar.xz | tar xJvf - && \ pushd gnutls-3.7.6 && \ ./configure --prefix=$HOME && \ make -j `nproc` && \ make install && \ cd .. || exit 1 curl http://ftp.gnu.org/pub/gnu/emacs/emacs-28.1.tar.gz | tar -xzvf - && pushd emacs-28.1 && \ ./configure --prefix=$HOME --with-x-toolkit=no --with-xpm=no --with-jpeg=no --with-jpeg=no --with-gif=no --with-tiff=no --with-png=no && \ make -j `nproc` && \ make install && \ cd .. || exit 1 echo echo echo "Emacs 28.1 must be ready!" echo
(ql:quickload :jonathan) (defpackage #:group-imm (:use :cl :jonathan)) (in-package :group-imm) (defun normalize (key) (intern key "KEYWORD")) (defun count-them () (with-open-file (f "imm-small.ndjson") (loop for line = (read-line f nil nil) with i = 0 while line as imm = (parse line :as :alist :keyword-normalizer #'normalize :normalize-all t) as src = (cdr (assoc :source imm)) when src do (let* ((tag (cdr (assoc :tag (car src)))) (len (length tag))) (setq i (+ i len))) finally (return i)))) (count-them) (time (count-them))
Today I managed to boot up a USB Bluetooth adapter on my Ubuntu machine and linked a pair of wireless headphones, but apparently though mashing the commands (!) and now I forgot what magic have I done