[previous] [up] [next]     [index]
Next: Printed Results Up: Interface Essentials Previous: Errors

Languages

DrScheme supports five languages:

Programs written in standard Scheme generally require the Advanced, MzScheme, or MrEd language. The MzScheme Debug and MrEd Debug languages are the same as the MzScheme and MrEd languages, respectively, but the Debug languages provide source location information for syntax and run-time errors (with a small performance cost).

DrScheme always shows the current evaluation language in the top of the interactions window. To choose a different language, select the Language|Configure Language... menu item. After changing the language, click Execute to reset the language in the interactions window.

The following table summarizes the syntactic forms and procedures built into each language.

                                             Beg Int Adv MzS MrEd
=================================================================
define (*), define-struct                     X   X   X   X   X  
lambda (**)                                   X   X   X   X   X  
cond, if, and, or                             X   X   X   X   X  
nand, nor                                     X   X   X   a   a  
quote'd symbols                               X   X   X   X   X  
MrSpidey annotations                          X   X   X   b   b  

quote'd lists, quasiquote, unquote X X X X let (*), let* (*), letrec (*) X X X X local X X a a

set! (*), fluid-let X X X begin, begin0, implicit begin X X X when, unless, if without else X X X Named let, delay, do, case X X X recur, rec, evcase X a a Turtles, split, split*, tprompt X c

require-library X X X X X define-macro, begin-elaboration-time X X X X X time X X X X let/cc, parameterize, with-handlers X X X Other MzScheme syntax X X ================================================================= Scheme and MzScheme procedures X X X X X MzLib core library procedures X X X d d MrEd GUI classes X ================================================================= Case-sensitive identifiers and symbols X X X Procedures must take at least 1 argument X X Identifier required at function-call position X X Top-level required at function-call position X lambda allowed only in definitions X quote works only on symbols X Unmatched cond/case is an error X X X Conditional values must be #t or #f X X =, ..., +, *, and / take at least 2 arguments X X X and, or, nand, nor require at least 2 exprs X X X Improper lists disallowed X X X define-struct always omits supertype X X ================================================================= Constructor-style output X X X write output X X Abbreviate cons constructor with list X X Show sharing in values X Print inexact numbers with #i X X X ================================================================= *: including -values forms **: including case-lambda a: Use (require-library "macro.ss") b: Use (require-library "spidey.ss") c: Use (require-library "turtle.ss" "graphics") d: Use (require-library "core.ss")

Most lines in the table specify the syntactic forms and procedures that each language provides. Lines in the next-to-last section specify deviations from the standard Scheme language: Lines in the last section specify deviations from a traditional Scheme read-eval-print interface in the way that DrScheme prints interaction results:

The Language|Configure Language... dialog contains a Show Details button that lets you configure certain details of the language specification. (Each option corresponds to one of the lines in the language table, but only a few of the lines in the figure have an option in the dialog.) Whenever the selected options do not match the default language specification, a Custom indicator appears next to the language-selection control at the top of the dialog.


[previous] [up] [next]     [index]
Next: Printed Results Up: Interface Essentials Previous: Errors

PLT