In other schemery news, it appears that the Scheme Steering Committee is alive and kicking. They have accepted John Cowan's resignation from #Scheme Standards #R7RS Working Group 2, and appointed Daphne Preston-Kendal as the new Chair of Working Group 2.
Great news overall - we might even get a R7RS-Large Report before Extinction.
https://groups.google.com/g/scheme-reports-wg2/c/46bdsdpYRt8
@efim given that you're in emacs, did you consider using the parenscript macro package to javascriptify a large subset of #CommonLisp ? (It also supports interleaving common lisp and javascript) and the original creator is around here somewhere on Mastodon. In another direction. The #SpritelyInstitute 's #hoot #r7rs small -> wasm compiler has been demonstrated a bit.
Or we could make internet sites that don't require the user download and execute a program...
#commonlisp #spritelyinstitute #hoot #r7rs
Question for anyone familiar with #Scheme programming, and in particular #Guile (@wingo): how hard would it be to port GOOPS to other Scheme implementations like #Chez, #Gauche, Gerbil, or Chicken? I know that other Scheme implementations provide their own #OOP systems (e.g. Chicken COOPS), but what if I want my library written in Guile to be more portable, could I still use GOOPS and try to move the code over to some other platform?
Or has this already been done? Is there a portable GOOPS, akin to a large Scheme library such as SLIB?
#scheme #guile #chez #gauche #oop #r7rs #r6rs #r5rs
For the #Scheme I decided to get a little fancy:
Xiaolin Wu's line algorithm - Rosetta Code https://rosettacode.org/wiki/Xiaolin_Wu's_line_algorithm#Scheme
Also I realized that using the transparency channel meant I had no need for gamma correction! But it then did require constructing an image from parts. That’s what made it more fun, though.
#RosettaCode #R7RS #FunctionalProgramming #GraphicsProgramming
#scheme #rosettacode #r7rs #functionalprogramming #graphicsprogramming
I guess that now CHICKEN supports this, I could start using regular expressions in Scheme:
SRFI 115: Scheme Regular Expressions https://srfi.schemers.org/srfi-115/srfi-115.html
I like to use things that are standard. This is destined to be part of R7RS-large.
I should check, though, that Gauche has it ... apparently so, unsurprisingly.
@tealeg bigloo is pretty massive, similarly to guile, and I think size of implementation is probably the biggest obstacle when getting C++ to play nicely with scheme. I think im going to explore using Chibi this time, because its designed to compile down to tiny binary, while being easy to read, and easy to embed in weird places while having nearly all the srfi that will make up #r7rs large so far (which will be larger than common lisp eventually, so its reasonably full featured)
Which do you prefer, the popular Cartwright/Shinn "soft type system" approach to pattern matching in scheme with its large pattern language, or the "Indiana style" matcher that emphasizes catamorphism while adopting a quasiquotation orientation towards expressing patterns?
#scheme #lisp #r6rs #r7rs #srfi #guile #chicken #chibi #gauche
#scheme #lisp #r6rs #r7rs #SRFI #guile #chicken #chibi #gauche
Hot take: #R6RS is actually an amazing standard and defining an r6rs-small variant would have been an adequate response to the (justified) concerns about the breadth of work demanded upon implementors. Its totally legit to embrace #R7RS for the sake of moving forward, but to act like R6RS is betrayal of #Scheme is mostly cope.
Benchmarking #Guile Versions with the R7RS #benchmark: https://www.draketo.de/software/guile-snippets.html#benchmarking-guile-r7rs
#r7rs #scheme
#guile #Benchmark #r7rs #scheme
Revised⁷ Report on the Algorithmic Language Scheme
getting started with r7rs scheme:
install debian
https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/11.3.0+nonfree/amd64/iso-cd/
in a terminal run:
sudo apt install gauche
sudo ln -s /usr/bin/gosh /usr/local/bin/scheme-r7rs
{ cat << EOF
#!/usr/bin/env scheme-r7rs
(import (scheme base)
(scheme write))
(define (main args)
(display "hello world!\n")
0)
EOF
} > /tmp/hello.scm
chmod +x /tmp/hello.scm
/tmp/hello.scm
#Scheme Benchmarks: https://ecraven.github.io/r7rs-benchmarks/ — great comparison of the many different platforms that support #r7rs #code
You know #TDD ?! What? I mean #tootDrivenDevelopment ? 🤔🤔
♥️ I need help to figure out what it looks like! ♥️
I start with a simple #scheme #code #snippet and you modify it. The resulting code has to fit in one toot!
If you can't execute the code. It's broken. The last committer should fix it.
So make it portable ! 🚀
(display "hello schemers")
#scheme #schemer #schemers #lisp #lisper
#r5rs #r6rs #r7rs #coding #programming #fun #friday #guile #chezscheme #gauche #racket #chickenscheme #gambit
#tdd #tootDrivenDevelopment #scheme #code #snippet #Schemer #schemers #lisp #lisper #r5rs #r6rs #r7rs #coding #programming #fun #friday #guile #chezscheme #gauche #racket #chickenscheme #gambit