CHICKEN User's Manual - the User's Manual CHICKEN User's Manual - the User's Manual Chicken User's Manual 1 the User's Manual
Total Page:16
File Type:pdf, Size:1020Kb
CHICKEN User's Manual - The User's Manual CHICKEN User's Manual - The User's Manual Chicken User's Manual 1 The User's Manual...........................................................................................................................................1 2 Getting started..................................................................................................................................................2 2.1 Scheme...............................................................................................................................................2 2.2 Chicken..............................................................................................................................................2 2.3 Chicken repositories, websites, and community................................................................................4 2.4 Installing Chicken..............................................................................................................................5 2.5 Development environments...............................................................................................................5 2.6 The Read-Eval-Print loop..................................................................................................................6 2.6.1 Scripts................................................................................................................................7 2.7 The compiler...................................................................................................................................................8 2.8 Installing an egg............................................................................................................................................10 2.9 Accessing C libraries....................................................................................................................................10 3 Basic mode of operation................................................................................................................................12 4 Using the compiler.........................................................................................................................................13 4.1 Compiler command line format.......................................................................................................13 4.2 Runtime options...............................................................................................................................17 4.3 Examples..........................................................................................................................................18 4.3.1 A simple example (with one source file).........................................................................19 4.3.2 An example with multiple files........................................................................................20 4.4 Extending the compiler.................................................................................................................................21 4.5 Distributing compiled C files........................................................................................................................22 5 Using the interpreter......................................................................................................................................24 5.1 Interpreter command line format.....................................................................................................24 5.2 Writing Scheme scripts....................................................................................................................25 5.3 Toplevel commands.........................................................................................................................26 5.4 toplevel-command............................................................................................................................27 5.5 History access..................................................................................................................................27 5.6 set-describer!....................................................................................................................................28 5.7 Auto-completion and edition...........................................................................................................28 5.8 Accessing documentation................................................................................................................28 6 Supported language.......................................................................................................................................30 7 Deviations from the standard.......................................................................................................................31 8 Extensions to the standard............................................................................................................................33 9 Non-standard read syntax.............................................................................................................................37 9.1 Multiline Block Comment...............................................................................................................37 9.2 Expression Comment.......................................................................................................................37 9.3 External Representation...................................................................................................................37 9.4 Syntax Expression............................................................................................................................37 9.5 Location Expression.........................................................................................................................37 9.6 Keyword...........................................................................................................................................38 9.7 Multiline String Constant.................................................................................................................38 9.8 Multiline String Constant with Embedded Expressions..................................................................38 9.9 Foreign Declare................................................................................................................................39 9.10 Sharp Prefixed Symbol..................................................................................................................39 9.11 Bang...............................................................................................................................................39 i CHICKEN User's Manual - The User's Manual Chicken User's Manual 9 Non-standard read syntax 9.11.1 Line Comment...............................................................................................................39 9.11.2 Eof Object......................................................................................................................39 9.11.3 DSSSL Formal Parameter List Annotation...................................................................39 9.11.4 Read Mark Invocation...................................................................................................39 9.12 Case Sensitive Expression..........................................................................................................................40 9.13 Case Insensitive Expression........................................................................................................................40 9.14 Conditional Expansion................................................................................................................................40 10 Non-standard macros and special forms...................................................................................................41 10.1 Making extra libraries and extensions available............................................................................41 10.1.1 require-extension...........................................................................................................41 10.1.2 define-extension.............................................................................................................42 10.2 Binding forms for optional arguments........................................................................................................43 10.2.1 optional.......................................................................................................................................43 10.2.2 case-lambda.................................................................................................................................43 10.2.3 let-optionals................................................................................................................................43 10.2.4 let-optionals*..............................................................................................................................44 10.3 Other binding forms....................................................................................................................................44 10.3.1 and-let*.......................................................................................................................................44 10.3.2 rec................................................................................................................................................44