08 Dec 25
Here, I’ll show you:
(let* ((abc '(a b c))
(abc2 abc)
(fish '(f i s h))
(fish2 fish))
(push! 'nope abc)
(mutate-cons! 'yeah fish)
(list abc abc2 fish fish2))
Returns this:
((nope a b c) (a b c) (yeah f i s h) (yeah f i s h))
28 May 25
26 Apr 25
“Scheme is a dynamic language which means that there is a limited amount of compile-time information that can be used by Guile to optimize the resulting bytecode. When we put on our optimizer hat, our job is to give the compiler a hand so the optimization passes can do their thing. I should stress that the level of code scrutiny we’re about to get into is usually unnecessary and the result doesn’t always look like the beautiful, functional Scheme you may be used to. However, most programs have some core loop or kernel, a small piece of the larger program, that would be benefit from being optimized to its fullest. In Chickadee, the most performance sensitive code is in the graphics layer, where lots of floating point math happens.”
25 Apr 25
Scheme is a dynamic language which means that there is a limited amount of compile-time information that can be used by Guile to optimize the resulting bytecode. When we put on our optimizer hat, our job is to give the compiler a hand so the optimization passes can do their thing. I should stress that the level of code scrutiny we’re about to get into is usually unnecessary and the result doesn’t always look like the beautiful, functional Scheme you may be used to. However, most programs have some core loop or kernel, a small piece of the larger program, that would be benefit from being optimized to its fullest. In Chickadee, the most performance sensitive code is in the graphics layer, where lots of floating point math happens.
11 Apr 25
25 Mar 25
Explore corporate healthcare benefits with Shivam Hospital, Dombivli (East). We offer a range of services, including Cashless Mediclaim and CGHS. Contact us today!.
25 Sep 24
Scheme is a dynamic language which means that there is a limited amount of compile-time information that can be used by Guile to optimize the resulting bytecode. When we put on our optimizer hat, our job is to give the compiler a hand so the optimization passes can do their thing. I should stress that the level of code scrutiny we’re about to get into is usually unnecessary and the result doesn’t always look like the beautiful, functional Scheme you may be used to. However, most programs have some core loop or kernel, a small piece of the larger program, that would be benefit from being optimized to its fullest. In Chickadee, the most performance sensitive code is in the graphics layer, where lots of floating point math happens.
27 Aug 24
Squine stands for “scheme quine”. It’s a little IDE for the subset of scheme introduced in The Little Schemer. It’s based on Yon, and bundles your scheme code, the IDE as well as a little scheme interpreter within a single HTML file that you can pass around. As of now, the only primitives included are: define quote car cdr cons null? zero? atom? number? eq? or and add1 sub1 lambda cond letrec. More might get added in the future!
10 Jan 24
A fun book about making a compiler for racket starting from x86.
26 Dec 23
🙅🏻♀️: The Reasoned Schemer
💁🏻♀️: This adorable interactive miniKanren tutorial
23 Dec 23
One of the distinguishing features of Lisp and Scheme is the ability to define macros that allow you to extend the base language with new language constructs. Here are two examples what this actually means and why this is a good idea.
09 Dec 23
Adding this and that to brev
01 Dec 23
Pre-Scheme is a statically typed dialect of the Scheme programming language, combining the flexibility of Scheme with the efficiency and low-level machine access of C. The compiler uses type inference, partial evaluation, and other correctness-preserving transformations to compile a subset of Scheme into C with no additional runtime overhead. This makes Pre-Scheme a viable alternative to C for programming virtual machines, operating systems, and embedded systems where the runtime overhead of a complete Scheme implementation is not desirable.
17 Aug 23
A fun book about making a compiler for racket starting from x86.
18 May 23
miniKanren is a family of Domain Specific Languages for logic programming.The name kanren comes from a Japanese word (関連) meaning “relation”.The core miniKanren language is very simple, with only three logical operators and one interface operator.The core language, using Scheme as the host language, is described in this short, interactive tutorial.
04 May 23
Hypergiant is a library for CHICKEN Scheme that tries to make it easy to make efficient games.1 The idea behind it is the belief that games should start with a prototype that should take minimal effort, but these should be extensible to be whatever you want the final product to be. So Hypergiant attempts to find the sweet spot between ease of use and power.
08 Apr 23
A short and sweet blogpost walking through some of the basics of the spritely institute’s goblins, an actor-based paradigm.
06 Mar 23
Weasel Scheme implements the R5 version of the Scheme programming language.
This version runs on Raspberry Pi 400s using Debian/GNU Linux 11 (bullseye).
17 Dec 22
My friend Zyni pointed out that someone has been getting really impressively confused and cross on reddit about empty lists, booleans and so on in Common Lisp, which led us to a discussion about what the differences between CL and Scheme really are here.
05 Dec 22
The code in the cookbook is released under several common licenses simultaneously. The user is free to pick any one of them. The aim is to make it easy to copy code into existing projects without having to add a new license notice to cover the cookbook material.