A practical introduction to CHICKEN Scheme
- grab remaining IP ranges from IANA (xml walking demo by Jim's script)
- Sokoban game implementation
- Treeview visualising disk usage (graphviz output)
- mail log parser with irregex (using predefined regular expressions)
- INI file parser
- netcat redirecting tcp ports, with a test framework that uses string ports for test cases
- Link dumping app by html-parser and http-client, page scraping
Topic ideas from the old wiki (alaric's machine)
- The chicken way of writing things (read deviations from the standard)
- srfi-12
- low-level macros
- the egg system
- naming conventions (*, ->, ?, with-, call-with-, etc.)
- chicken-install
- The power of representing hierarchical data/information as s-expressions (mabye as a preface to the SRE and SXML chapters)
- The power of closures. As a case in point, many programmers from other languages will often do things like make a list of tasks to perform, with some kind of record describing the task, with a method of the task class to do the task. As closures begin to sink in, they might make a list of records that contain a 'run me' closure to do the task, and a driver function that performs them. Then eventually, they replace that with a single global reference to a closure that, when called, runs the tasks; and queuing a task is done by making a closure that does the work then calls the old closure from the global ref, etc.
- Talk about call/cc, but emphasise that we use it to create tools like coroutines, threads, and signals; emphasise using such tools rather than putting call/cc into your own code willy-nilly, as call/cc needs a lot of thinking about. It's a powerful tool, but sharp.
- SREs
- SXML/SSAX
- "Shell scripting" tasks
- C binding example. Someone suggest a simple lib to wrap?
- Bitparsing using scheme
- spiffy
- Filter spam with scheme
- openurl-server (simple example for daemonization and a tcp server)
- DSLs
TOC proposal
Introduction
[ What Scheme is. What CHICKEN is. What eggs are. ]
CHICKEN history
Getting started
Installing CHICKEN
[ How to install CHICKEN on popular operating systems (e.g., Gnu systems, BDSs, Windows). Mention required tools, installation steps etc. ]
CHICKEN tools
[ Introduction about the CHICKEN tools ]
csi
csc
chicken-install
chicken-uninstall
chicken-status
chicken-bug
"Hello world" programming in CHICKEN
A "Hello, world" program
[ How to make an executable program in CHICKEN, both interpreted and compiled. ]
A "Hello, world" extension
[ How to make a module for a "hello, world" extension ]
Real-world programming in CHICKEN
Systems programming
[ File manipulation, using CHICKEN as a replacement for shell scripts, implementing some common shell programs in CHICKEN etc ]
Web programming
[ Spiffy, SXML/SSAX, Awful, database access ... ]