💾 Archived View for sdf.org › blippy › guile.gmi captured on 2024-06-16 at 12:34:10. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2024-03-21)
-=-=-=-=-=-=-
Created 2022-07-07 Updated 2024-01-14
(define-syntax aif-version-1 (lambda (x) (syntax-case x () ((_ test then else) (with-syntax ((it (datum->syntax x 'it))) #'(let ((it test)) (if it then else))))))) (define-macro (aif-version-2 test then else) `(let ((it ,test)) (if it ,then ,else))) (aif-version-2 2 (+ 1 it) 'bomb) ; => 3
Responses to the above code:
ctrl-c: Common Lisp Anaphoric IF
idiomdrottning: A problem with Guile’s defmacro
,in (cerbo stats) ,binding ; to see what's available (help mid) ; get the document for a function MID
Single: (use-modules (srfi srfi-19))
or multiple: (use-modules (srfi srfi-18) (srfi srfi-19))
srfi-19 Time/Date Library
Read the output from a command:
(use-modules (ice-9 popen)) (define (read-command-v1 cmd) (define port (open-input-pipe cmd)) (define str (reverse-list->string (let loop ((char (read-char port)) (result '())) (if (eof-object? char) result (loop (read-char port) (cons char result)))))) (close-pipe port) str) (define (read-command-v2 cmd) (with-input-from-port (open-input-pipe cmd) read-string)) (display (read-command-v2 "ls -hal"))
See also:
cut: srfi-26
(receive (a b) (values 1 2) (displayln a) (displayln b)) ; 1 2
(list-ec (: i 5) (* i i)) => (0 1 4 9 16) do-ec append-ec string-ec string-append-ec vector-ec ...