source: project/wiki/new-index @ 31216

Last change on this file since 31216 was 31216, checked in by sjamaan, 5 years ago

Update Ohloh URLs: Ohloh is now Open Hub

File size: 4.1 KB
Line 
1[[tags:main navigation]]
2
3== Welcome to the CHICKEN wiki.
4
5<nowiki>
6<img style="float:right; border-left:1px solid #ccc;border-bottom:1px solid #ccc;margin-left:1em;" src="http://www.call-with-current-continuation.org/chicken-small.png" alt="Stylized picture of a chicken"/>
7<div style="margin-top:30px;float:right"><a href="/donate"><img src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" alt="Paypal donation button"/></a></div>
8</nowiki>
9
10[[http://www.call-with-current-continuation.org/|CHICKEN Scheme]] is
11an implementation of the Scheme programming language. The system
12provides a Scheme to C Compiler and an Interpreter.
13
14CHICKEN Scheme aims to be
15
16* Free software: CHICKEN core is BSD licensed, extensions are available through various free software licenses.
17* Practical to use: It features hundreds of available extensions for everyday tasks
18* Standards compliant: CHICKEN currently implements R5RS plus certain SRFIs. R7RS support is planned.
19* Easy to install: A working C compiler and GNU make are its build dependencies. Check also [[platforms| the platforms page]].
20* Easy to enhance: You can write your own extensions easily.
21* Newcomer friendly: Check our IRC channel or the mailing lists for help!
22
23== What it looks like
24
25A small trivial example calculating the factorial of a given number
26from the command line:
27
28<enscript hilight="scheme>
29(define fac
30  (lambda (n)
31    (if (= n 0)
32        1
33        (* n (fac (- n 1))))))
34
35(define number
36  (string->number (car (command-line-arguments))))
37(print "The factorial of " number " is " (fac number))
38
39</enscript>
40
41CHICKEN compiles to C, therefore interfacing with C libraries is easy:
42
43<enscript higlight="scheme">
44(define log10
45  (lambda (x)
46    (/ (log x) (log 10))))
47
48;; The same using log10 from C:
49(foreign-declare "#include <math.h>")
50
51(define log10-from-c
52  (foreign-lambda* double ((double x))
53    "double y;"
54    "y = log10(x);"
55    "C_return(y);"))
56
57;; Shorter versions:
58(define (log10 x) (/ (log x) (log 10)))
59(define log10-from-c
60  (foreign-lambda double "log10" double))
61</enscript>
62
63== Getting started
64
65* [[http://code.call-cc.org| Download the source code]]
66* [[chickenista-guide| A First Tour through the system]]
67* Browse available [[egg-index|extensions]], called '''eggs'''.
68* Search the manual and the egg APIs with [[http://api.call-cc.org|chickadee]]
69* [[Contribute]] and make CHICKEN a better system!
70
71Check the menu at the top of this page for information about how to
72download CHICKEN, the User's Manual, extensions (eggs), the available
73API and how to report bugs and suggest improvements.
74
75== Get in touch!
76
77; [[discussion-groups|Discussion groups]] : Mailing lists and IRC channel about CHICKEN
78; [[http://gazette.call-cc.org|The CHICKEN Gazette]] : (Not so) weekly status updates about the CHICKEN project
79; [[Contribute]] : Make CHICKEN Scheme a better system
80; [[Donate]] : If you like chicken. Your donation helps us running our infrastructure and other things!
81== The people behind CHICKEN
82
83; [[maintainers|Maintainers]] : People who maintain CHICKEN
84; [[Users]] : A list of users and contributors to CHICKEN Scheme
85
86== Features
87
88; [[elevator-pitch|Elevator pitch]] : A brief explanation of why CHICKEN is suitable for Real World tasks
89; [[Supported standards]] : Information about the standards implemented by CHICKEN.
90; [[CHICKEN for programmers of other languages]] : CHICKEN for programmers of C, Ruby, Python and other programming languages
91; [[platforms|Platforms & packages]] : An overview of supported platforms and pre-packaged chickens
92
93== Using CHICKEN
94
95; [[Tutorials]] : Tutorials about all things CHICKEN!
96; [[/tips and tricks|Tips and tricks & code snippets]] : Some handy tips and code snippets
97; [[Software]] : Software people have written using CHICKEN
98
99== More information for advanced Users and Developers
100
101; [[Internals]] : Documentation about the internal structure of CHICKEN
102; [[Logos|Art]] : CHICKEN-related art (logos, desktop backgrounds etc)
103
104== Project activity
105
106<nowiki><div class="openhub" style="max-width: 400px;"><script type="text/javascript" src="http://www.openhub.net/p/5796/widgets/project_factoids_stats.js"></script></nowiki>
Note: See TracBrowser for help on using the repository browser.