# Scheme (programming language) siiky 2023/02/06 2023/02/28 2024/01/02 programming,scheme => https://www.scheme.org ## Some implementations => pl.chicken.gmi CHICKEN Scheme => https://synthcode.com/wiki/chibi-scheme Chibi Scheme => https://haltp.org/posts/owl.html Owl Lisp => https://www.gnu.org/software/guile Guile Scheme => https://github.com/yuriy-chumak/ol Otus Lisp => http://community.schemewiki.org/?scheme-faq-standards => https://wingolog.org/archives/2013/01/07/an-opinionated-guide-to-scheme-implementations an opinionated guide to scheme implementations ## My projects ### ipfs A Kubo RPC client library. Made a Lua port as well. => https://git.sr.ht/~siiky/ipfs.scm => https://wiki.call-cc.org/eggref/5/ipfs => ../projects/ipfs.gmi => pl.lua.gmi Now part of the client libraries in the docs site: => https://docs.ipfs.tech/reference/kubo-rpc-cli/ => ../tinylog-2023.gmi#h22023-09-25%2019%3A36%20%2B0100 ยง 2023-09-25 19:36 +0100 ### disjoint-set An imperative implementation of Disjoin Sets based on Scheme vectors. => https://git.sr.ht/~siiky/disjoin-set => https://wiki.call-cc.org/eggref/5/disjoint-set => gemini://gemi.dev/cgi-bin/wp.cgi/view/en?Disjoint-set_data_structure Disjoint sets ### gmi A Gemtext reader/writer. Made a Lua port as well. => https://git.sr.ht/~siiky/gmi.scm => https://wiki.call-cc.org/eggref/5/gmi => ../projects/gemtext.gmi => pl.lua.gmi ### transmission A Transmission RPC client. => https://git.sr.ht/~siiky/transmission.scm => https://wiki.call-cc.org/eggref/5/transmission ### daemon A convenience procedure to run some Scheme code in a process in the background -- or not! => https://wiki.call-cc.org/eggref/5/daemon => https://git.sr.ht/~siiky/daemon ### alist-let A macro similar to let that can be used to destructure alists. In experimental stage still. First iteration ever was from the transmission egg. => https://git.sr.ht/~siiky/alist-let ### ttltbl A TTL table/dictionary -- i.e. a cache. => https://git.sr.ht/~siiky/ttltbl.scm ### gminid My fork of Kooda's geminid, and a Gemini IPFS gateway. => https://git.sr.ht/~siiky/geminid => ../projects/gemini-ipfs-gateway.gmi Gemini IPFS gateway ### poset Experiments in POSets visualization. => https://git.sr.ht/~siiky/poset ### trmote A few utility programs based on the transmission egg to help manage a Transmission instance -- especially transmission-update-seed-priority and transmission-verify! => https://git.sr.ht/~siiky/trmote ### cling This is a Command Line INterface Generator. I like the idea and the functionality I managed to program in, and kinda like the usability, but I don't like at all how it's implemented. It's ugly af, and that's the only reason I haven't published it as an egg yet. Used by trmote and a few of my other unpublished eggs. => https://git.sr.ht/~siiky/cling ### invidious Invidious API client. => https://git.sr.ht/~siiky/invidious.scm ### ivp Search and play videos and playlists from Invidious without leaving your terminal! Based on invidious and cling. => https://git.sr.ht/~siiky/ivp ### gvs GraphViz Extension Language for Scheme. => https://git.sr.ht/~siiky/gvs ## Ideas ### IPC Scheme Port A module to help Scheme processes to communicate with each other in Scheme through ports (pipes or not). => https://api.call-cc.org/5/doc/chicken/process/create-pipe create-pipe => https://api.call-cc.org/5/doc/chicken/port/make-input-port make-input-port => https://api.call-cc.org/5/doc/chicken/port/make-output-port make-output-port => https://api.call-cc.org/5/doc/chicken/port/make-bidirectional-port make-bidirectional-port => https://api.call-cc.org/5/doc/chicken/port/set-buffering-mode%21 set-buffering-mode!