Difference between revisions of "Scheme"

From WikEmacs
Jump to navigation Jump to search
(→‎Quack: Add section, link, description.)
m (Reverted edits by 37.59.80.67 (talk) to last revision by 149.156.119.184)
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Scheme is a functional programming language of the [[lisp]] family. Praised for its minimalist design, Scheme also pioneers the [[lexical scope]], tail-call optimization and first class continuation.
+
Scheme is a programming language of the [[:Category:Lisp|Lisp]] family. Praised for its minimalist design, Scheme is [[lexical scope|lexcially scoped]], requires tail-call optimization and pioneered first class continuations.
  
== Implementation ==
+
using color schemes to hint at ctxneot is usefulAgreed.  beyond that: you are totally crazyCorey?  Crazy?  Agreed.  It should always be black on whiteBah.  Green on black.  White as a background is just more strain on the eyes.
 
 
=== Guile ===
 
[[Guile]] is the GNU Ubiquitous Intelligent Language for Extensions, the official extension language for the GNU operating system.
 
 
 
=== Racket ===
 
Formerly known as PLT Scheme
 
  
 
== Major Mode for editing Scheme ==  
 
== Major Mode for editing Scheme ==  
=== Scheme mode ===
 
Emacs has built-in Scheme Mode. It provides basic features, such as syntax highlighting etc.
 
 
=== Geiser ===
 
Geiser is a collection of Emacs major and minor mode, that can help Emacs to communicate to a foreign Scheme interpreter. It provides [[SLIME]]-like support for Racket and Guile.
 
  
Example config may look like this:
+
* [[Scheme-mode]]
<syntaxhighlight lang="lisp">
+
* [[Geiser]]
(defun turn-on-parenthesis-goodies () (rainbow-delimiters-mode 1) (paredit-mode 1))
+
* [[Quack]]
(add-hook 'scheme-mode-hook 'turn-on-parenthesis-goodies)
 
(load-file "C:/path-to-geiser/elisp/geiser.el")
 
(setq geiser-active-implementations '(racket))
 
(setq geiser-racket-binary "C:/path-to-racket/racket.exe")
 
(require 'quack)
 
</syntaxhighlight>
 
 
 
=== Quack ===
 
[http://www.neilvandyke.org/quack/ Quack] is a package that enhance Emacs support for Scheme. It supports many different interpreters such as Guile, Racket, etc. Geiser uses its own Quack version and, thus, makes Quack alone a good light alternative.
 
 
 
When you have installed it, you can add these lines to your .emacs file:
 
<syntaxhighlight lang="lisp">
 
;; The binary of your interpreter
 
(setq scheme-program-name "racket")
 
 
 
;; This hook lets you use your theme colours instead of quack's ones.
 
(defun scheme-mode-quack-hook ()
 
  (require 'quack)
 
  (setq quack-fontify-style 'emacs))
 
(add-hook 'scheme-mode-hook 'scheme-mode-quack-hook)
 
</syntaxhighlight>
 
  
 
== Minor Mode for editing Scheme ==
 
== Minor Mode for editing Scheme ==
  
* [http://mumble.net/~campbell/emacs/paredit.el ParEdit] is a mode for structured editing of [[S-expression]]s. Useful with any Lisp.
+
* [[Paredit]] is a mode for structured editing of [[S-expression]]s. Useful with any Lisp.
* [https://github.com/jlr/rainbow-delimiters RainbowDelimiters] highlights parentheses, brackets, and braces according to their depth, each level in a different colour. Also available in [[ELPA]].
+
* [[Rainbow_delimiters]] highlights parentheses, brackets, and braces according to their depth, each level in a different colour. Also available in [[ELPA]].
 
 
  
 
== Useful Links ==
 
== Useful Links ==

Latest revision as of 19:40, 24 June 2012

Scheme is a programming language of the Lisp family. Praised for its minimalist design, Scheme is lexcially scoped, requires tail-call optimization and pioneered first class continuations.

using color schemes to hint at ctxneot is usefulAgreed. beyond that: you are totally crazyCorey? Crazy? Agreed. It should always be black on whiteBah. Green on black. White as a background is just more strain on the eyes.

Major Mode for editing Scheme

Minor Mode for editing Scheme

  • Paredit is a mode for structured editing of S-expressions. Useful with any Lisp.
  • Rainbow_delimiters highlights parentheses, brackets, and braces according to their depth, each level in a different colour. Also available in ELPA.

Useful Links