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

Languages

DrScheme supports four languages:

Programs written in standard Scheme generally require the Full Scheme language. This language level offers options to access graphics libraries, and to 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|Choose 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. Text indicates Full Scheme/Textual, and Graph indicates Full Scheme/Graphical.

                                             Beg Int Adv Text Graph
===================================================================
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 let-struct X X X X local X X a a

set! (*), fluid-let X X X begin, begin0 X X X implicit begin 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, let/ec, 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 set! disallowed on arguments X structures omit supertype, mutators X X =================================================================== Constructor-style output X X X write output X X Abbreviate cons constructor with list X X Show sharing in values X Decimal numbers read as exact X X 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 reads and prints interaction results:

The Language|Choose 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: Launchers Up: Interface Essentials Previous: Errors

PLT