Difference between revisions of "Scheme"

From WikEmacs
Jump to: navigation, search
(Quack: Add section, link, description.)
(extracted mode info into separate pages)
Line 10: Line 10:
  
 
== 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 ===
+
* [[Scheme-mode]]
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.
+
* [[Geiser]]
 
+
* [[Quack]]
Example config may look like this:
+
<syntaxhighlight lang="lisp">
+
(defun turn-on-parenthesis-goodies () (rainbow-delimiters-mode 1) (paredit-mode 1))
+
(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 ==

Revision as of 08:02, 1 May 2012

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.

Implementation

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

Minor Mode for editing Scheme

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


Useful Links