<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wikemacs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=193.52.24.14</id>
	<title>WikEmacs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wikemacs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=193.52.24.14"/>
	<link rel="alternate" type="text/html" href="https://wikemacs.org/wiki/Special:Contributions/193.52.24.14"/>
	<updated>2026-04-19T02:34:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wikemacs.org/index.php?title=Scheme&amp;diff=2796</id>
		<title>Scheme</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Scheme&amp;diff=2796"/>
		<updated>2012-05-01T10:15:32Z</updated>

		<summary type="html">&lt;p&gt;193.52.24.14: /* Quack */ Add section, link, description.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Guile ===&lt;br /&gt;
[[Guile]] is the GNU Ubiquitous Intelligent Language for Extensions, the official extension language for the GNU operating system.&lt;br /&gt;
&lt;br /&gt;
=== Racket ===&lt;br /&gt;
Formerly known as PLT Scheme&lt;br /&gt;
&lt;br /&gt;
== Major Mode for editing Scheme == &lt;br /&gt;
=== Scheme mode ===&lt;br /&gt;
Emacs has built-in Scheme Mode. It provides basic features, such as syntax highlighting etc. &lt;br /&gt;
&lt;br /&gt;
=== Geiser ===&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
Example config may look like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(defun turn-on-parenthesis-goodies () (rainbow-delimiters-mode 1) (paredit-mode 1))&lt;br /&gt;
(add-hook 'scheme-mode-hook 'turn-on-parenthesis-goodies)&lt;br /&gt;
(load-file &amp;quot;C:/path-to-geiser/elisp/geiser.el&amp;quot;)&lt;br /&gt;
(setq geiser-active-implementations '(racket))&lt;br /&gt;
(setq geiser-racket-binary &amp;quot;C:/path-to-racket/racket.exe&amp;quot;)&lt;br /&gt;
(require 'quack)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Quack ===&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
When you have installed it, you can add these lines to your .emacs file:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
;; The binary of your interpreter&lt;br /&gt;
(setq scheme-program-name &amp;quot;racket&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;; This hook lets you use your theme colours instead of quack's ones.&lt;br /&gt;
(defun scheme-mode-quack-hook ()&lt;br /&gt;
  (require 'quack)&lt;br /&gt;
  (setq quack-fontify-style 'emacs))&lt;br /&gt;
(add-hook 'scheme-mode-hook 'scheme-mode-quack-hook)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Minor Mode for editing Scheme ==&lt;br /&gt;
&lt;br /&gt;
* [http://mumble.net/~campbell/emacs/paredit.el ParEdit] is a mode for structured editing of [[S-expression]]s. Useful with any Lisp.&lt;br /&gt;
* [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]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
* [http://docs.racket-lang.org/guide/Emacs.html Racket documentation on Emacs as IDE]&lt;br /&gt;
&lt;br /&gt;
[[Category:Lisp]]&lt;/div&gt;</summary>
		<author><name>193.52.24.14</name></author>
	</entry>
</feed>