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))
by 2097 17 days ago

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.”

by DimlyLitCorners 8 months ago saved 3 times

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.

by frndmg 8 months ago saved 3 times

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.

by eli 1 year ago saved 3 times

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!

by eli 1 year ago

10 Jan 24

26 Dec 23

🙅🏻‍♀️: The Reasoned Schemer
💁🏻‍♀️: This adorable interactive miniKanren tutorial

by 2097 2 years ago saved 2 times

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.

by eli 2 years ago

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.

by eli 2 years ago

17 Aug 23

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.

by eli 2 years ago saved 2 times

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.

by eli 2 years ago saved 2 times

08 Apr 23

A short and sweet blogpost walking through some of the basics of the spritely institute’s goblins, an actor-based paradigm.

by eli 2 years ago

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).

by eli 2 years ago

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.

by eli 3 years ago

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.

by eli 3 years ago