Home
        PLT DrScheme: Programming Environment Manual
         Contents
1.      and put  the insertion point in the arglist of the  lambda  21    Keybindings menu item  14  keyboard shortcuts  19  Kill menu item  15    language levels  see languages  languages  4  changing  4  extending  24  launcher executables  8  libmred vers  dll  8  libmzgc vers  dll  8  libmzsch vers  dll  8  license  27  Log Definitions and Interactions    menu item  13    Map delete to backspace preference  18  memory requirements  27   menu items  13   Module Browser    menu item  15  module language  5   Most Recent Window menu item  17  MrFlow  28   MrSpidey  28   multimedia file format  22    New menu item  13  Number of recent items preference  18  numbers       34    printing  7    Only warn once when executions and interactions  are not synchronized preference  18   Open Recent menu item  13   Open    menu item  13   output format  9   overwrite mode  21    Parenthesis highlight color preference  18  Paste menu item  14  plain text file format  21  PLT Graphical  MrEd  language  5  PLT Pretty Big language  5  PLT Textual  MzScheme  language  5  plt prefs ss  22  23  PLT_MrEd  8  PLT_MzScheme  8  PLTDRCM  25  PLTDRDEBUG  26  PLTDRTESTS  26  PLTHDCM  25  PLTNOTOOLS  25  PLTONLYTOOL  25  PLTSTRINGCONSTANTS  26  preference files  22  preferences  17   site specific  22  Preferences    menu item  14  Print Definitions    menu item  13  Print Interactions    menu item  13  printing format  9  proxy  19  28    quasiquote style output  9    R5RS  5   read  10   read char  10 
2.   14  Hide Interactions menu item  14    INDEX       Hide Profile menu item  14  Hide Program Contour menu item  14  Highlight between matching parens preference  18    I O  10   Indenting preferences  17   indenting Scheme code  4   Insert Comment Box menu item  16   Insert Delta  define  menu item  16   Insert Fraction    menu item  16   Insert Image    menu item  16   Insert Java Comment Box menu item  16  Insert Java Interactions Box menu item  16  Insert Lambda menu item  16   Insert Large Letters    menu item  16  Insert Scheme Box menu item  16   Insert Scheme Splice Box menu item  16  Insert Test Case menu item  16   Insert XML Box menu item  16   Install PLT File    menu item  13  installation instructions  28   Interact with DrScheme in English menu item  17  interactions window  2  4   Intermediate Student language  5  Intermediate Student with Lambda language  5    keybindings  19  A C down  20  A C left  20  A C right  20  A C up  20  b  21  C    21  C _  21  C a  19  C b  19  C d  20    C x C s  21   C x C w  21   C x u  21   C y  20   copy selection to clipboard  20  cut complete sexpression  20    delete backward one character  20  delete backward one word  20   delete forward one character  20  delete forward one S expression  20  delete forward one word  20   delete forward to end of line  20  delete selection to clipboard  cut   20  Execute  21   f5  21   M  lt   19   M  gt   19   M    20   M    20   M    21   M b  19   M C b  20   M C d  20   M C down  20 
3.   M C f  20   M C k  20   M C left  20   M C m  20   M C p  20   M C right  20   M C SPACE  20   M C t  20   M C u  20   M C up  20   M d  20   M DEL  20   M f  19   M n  21   M o  21   M p  21   M S L  21   M t  20   M v  19   M w  20   match parentheses backward  20  move backward one character  19  move backward one page  19   move backward one S expression  20  move backward one word  19   move backwards to the nearest editor box  20  move down into a nested S expression  20  move down into an embedded editor  20  move forward one character  19  move forward one page  19   move forward one S expression  20  move forward one word  19   move forward to the nearest editor box  20  move to beginning of file  19   move to beginning of line  left   19          33    INDEX       move to end of file  19   move to end of line  right   19   move to next line  down   19   move to previous line  up   20   move up out of an embedded editor  20   move up out of an S expression  20   paste from clipboard  yank   20   redo  21   save file  21   save file under new name  21   search for string backward  21   search for string forward  21   select forward S expression  20   toggle dark green marking of matching paren   thesis  20   toggle overwrite mode  21   transpose characters  20   transpose sexpressions  20   transpose words  20   undo  21   wrap selection in curly brackets  21   wrap selection in parentheses  20   wrap selection in square brackets  20    wrap selection in  lambda    
4.   read eval print loop  9   recycling icon  2   Redo menu item  14   Reindent All menu item  15   Reindent menu item  15   Related Web Sites menu item  17   Replace  amp  Find Again menu item  14   Reuse existing frames when opening new files pref   erence  18   Revert menu item  13    Save button  3   Save Definitions As Text    menu item  13  Save Definitions As    menu item  13  Save Definitions menu item  13    INDEX       Save Interactions As Text    menu item  13  Save Interactions As    menu item  13  Save Interactions menu item  13   Save Other menu item  13   Search in Files    menu item  13   Select All menu item  14   Show Definitions menu item  14   Show Interactions menu item  14  Show Profile menu item  14   Show Program Contour menu item  14  Show status line preference  18   Split menu item  15   stand alone executables  8  30   status line  2   Step button  3   stepper  3   storage requirements  28   supported platforms  27    tail calls  3  Teachpacks  implementing  24  Test Suite Window  11  The Stepper  3  Tool Web Sites menu item  17  tools  24    Uncomment menu item  16  Undo menu item  14  Use separate dialog for searching preference  18    Verify exit preference  18   Wrap Text menu item  14   Wrap words in editor buffers preference  18  write  10    XML  11    yellow and black messages  29    35    
5.  27 2 Quasiquote style Outpt    s saa asa a aaa a E EA ee ees    28  Input and Um 2 0 24 444954 6545 see bbe daa Eaa E a    Interface Reference    3 1 Menus    3 1 1    Language  Scheme  Special      Windows    10    11    11    13    13    13    14    14    15    15    16    17    CONTENTS CONTENTS       US HS aa as e AAA A a eS ee Ae be 8 17  o AAA 17  33  Weyboatd Shoricuts  o ss aia AAA A A A 19   SL Moyne Around   4 2444422484 040 aus bo a dd bes 19   ga Editing OPERONS es rc a ae ER ee eo Boe ae ee RRR Rw 20   aoe Wile IPRC see a ae A Se ee a eed e 21   Ace  TOC cis SR A he OR OS we ROR IR A Bae OE a 21   Ooo Miscellaneous s o s tena ek eae He EEE AAA we NS 21   a A a ae 3 4 0 tn Coe eee eee hdd ee ee ERG Eee P a4 21  Sa DWrScheme Piles  ey cece a eee ee eS PERERA ERE See ee Ce a eg 21   Gil A Sle Gs os SS Hes ee A A ea a ee ee Be we 21   3 4 2 Backup and Autosave Files       ce a siaaa a aama ee 22   wo Preferentes Piles    coso a a OS EE A Bok me ew 22   4 Extending DrScheme 24  Hl Tea PGiGke ae gy gg Ga AR Oe eS a a a ee a eee SS Sok ee eG 24  Moo LOIS oe os Saath ROE SE EDD Ge ee Oe eae ER EAE ES 25  4 0  Environment Variables     s ii ess sa ee EN PO ee eee eA He E 25   5 Frequently Asked Questions 27  5 1 Supported Operating Systems and Installation                 0 02 000004 27  5 2 Using Drscheme   osorno A 28  bo  Memory and   Pertoraiadide cosas rara SEEAR SEES Pewee eee eee oe 4 30  Be  Troubles OO LR    bao 6  a Se ee a A Se ae oe BO ew 30   Index 32    1  
6.  Check for Updates     Opens an internet connection to check if there have been any updates to various installed DrScheme  packages    e Related Web Sites  This submenu has a list of related web sites  Choosing one of them sends a message to an external  browser to visit the web site    e Tool Web Sites  This submenu has a list of web sites for the add on tools in your DrScheme  Choosing one of them  sends a message to an external browser to visit the web site    e Interact with DrScheme in English    This and the related menu items at the end of the Help menu switch DrScheme s interface  natural   language     3 2 Preferences    The preferences dialog comprises several panels     e Font    This panel controls the main font used by DrScheme     e Syntax Coloring  The Syntax Coloring panel has several subpanels that enable you to configure the colors that DrScheme  uses for its online coloring and for Check Syntax    e Editing  The Editing panel consists of several sub panels         Indenting  This panel controls which keywords DrScheme recognizes for indenting  and how each keyword is  treated     17    3 2  Preferences 3  Interface Reference       18        General    x  x    Number of recent items     controls the length of the Open Recent menu  in the File menu    Auto save files     If checked  the editor generates autosave files  see drscheme autosave files   for files that have not been saved after five minutes    Backup files     If checked  when saving a file for the
7.  DrScheme  For example  a step might replace    1 2  with 3  These are the same rules used by DrScheme  to evaluate a program  Clicking Step opens a new window that contains the program from the definitions  window  plus three new buttons  Next  Previous  and Home  Clicking Next performs a single evaluation step   clicking Previous retraces a single step  and clicking Home returns to the initial program  The Stepper works  only for programs using the Beginning Student language level     Clicking the Check Syntax button annotates the program text in the definitions window  It add these  annotations     e Syntactic Highlighting Imported variables and locally defined variables are highlighted with color  changes     e Lexical Structure The lexical structure is shown with arrows overlaid on the program text  When  the mouse cursor passes over a variable  DrScheme draws an arrow from the binding location to the  variable  or from the binding location to every bound occurrance of the variable     Additionally  control or right button mouse clicking on a variable activates a popup menu that lets  you jump from binding location to bound location and vice versa  a rename the variable  or tack the  arrows so they do not disappear     e Tail Calls Any subexpression that is  syntactically  in tail position with respsect to its enclosing  context is annotated by drawing a light purple arrow from the tail expression to its surrounding  expression     e Require Annotations Control clicking 
8.  Student teaching language  and more     It is useful as a step past Advanced Student  or for implementing MrEd programs with a richer base  syntax and set of primitives     Note that there some forms  for example  define struct  that appear in both Advanced and MrEd   but with slightly different semantics  In all such cases  the PLT Pretty Big language uses the forms  from the MrEd language  In the case of define struct  Advanced implicitly uses a very permissive  inspector  see inspectors for details  and MrEd uses the current inspector      e module requires that the definitions window contain only a single module declaration  as defined in  PLT MzScheme  Language Manual  The module explicitly declares the language for the module s  body     The Language  Choose Language    dialog contains a Show Details button for configuring 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     The teaching languages differ from conventional Scheme in a number of ways     e Case sensitive identifiers and symbols     In a case sensitive language  the variable names x and X  are distinct  and the symbols  x and  X are also distinct  In a case insensitive language  x and X are  equiva
9.  escape back to  constructor style printing for non lists and non symbols     With quasiquote style printing  the above example prints as     2 8  Input and Output 2  Interface Essentials           lambda  x   lambda  y     x y     This example    list    lambda  list    x   box     lambda  y     x y      in quasiquote style printing prints as         lambda  x    box     lambda  y     x y        2 8 Input and Output    Many Scheme programs avoid explicit input and output operations  obtaining input via direct function calls  in the interactions window  and producing output by returning values  Other Scheme programs explicitly  print output for the user during evaluation using write or display  or explicitly request input from the user  using read or read char     Explicit input and output appear in the interactions window  but within special boxes that separate explicit  I O from normal expressions and results  For example  evaluating     gt   read     in the interactions window produces a special box for entering input                  The underscore indicates the location of the flashing caret   Type an number into the box and hit Enter   and that number becomes the result of the  read  expression  If you type 5  the overall interaction appears  as follows      gt   read   5  5   gt                 The mouse cursor becomes a watch whenever DrScheme is evaluating expression  but you can still use the  mouse to move the selection in an input box     Output goes to the same b
10.  first time in each editing session  the  original copy of the file is copied to a backup file in the same directory  The backup files have  the same name as the original  except that they end in either  bak or       x Map delete to backspace     If checked  the editor treats the Delete key like the Backspace key   x Show status line     If checked  DrScheme shows a status line at the bottom of each window   x   Count column numbers from one     If checked  the status line   s column counter counts from    one  Otherwise  it counts from zero    Display line numbers in buffer  not character offsets     If checked  the status line shows a  line column display for the current selection rather than the character offset into the text   Wrap words in editor buffers     If checked  DrScheme editors auto wrap text lines by default   Changing this preference affects new windows only    Use separate dialog for searching     If checked  then selecting the Find menu item opens a  separate dialog for searching and replacing  Otherwise  selecting Find opens an interactive  search and replace panel at the bottom of a DrScheme window    Reuse existing frames when opening new files     If checked  new files are opened in the same  DrScheme window  rather than creating a new DrScheme window for each new file    Enable keybindings in menus     If checked  some DrScheme menu items have keybindings   Otherwise  no menu items have key bindings  This preference is designed for people who  are comfo
11.  starts  It also accesses library files from your DrScheme installation when it runs  Since a launcher  executable contains specific paths to access those files  launchers usually cannot be moved from one  machine to another     e A stand alone executable tends to be large  because it embeds a copy of your program at the time that  it is created  as well as any library that your code uses  When the executable is started  it uses the  embedded copies and does not need your original source file or your DrScheme installation  It may   however  require DLLs or framework libraries installed on your machine  depending on your operating  system        Windows     The executable requires the following DLLs  libmzsch vers  dll  libmzgc vers  dll   and  for executables using the MrEd engine  libmred vers  dll  where  vers  is based on the current  version number  These DLLs are normally installed in the system directory        Mac OS X     The executable requires the PLT_MzScheme framework  which is normally in   stalled in  Library Frameworks  When using the MrEd engine  the executable also requires the  PLT_MrEd framework from the same location     To move the    stand alone    executable to another machine  the DLLs or frameworks that it uses must  also be copied to the other machine     You can download these DLLs or frameworks as a separate package from  http    www plt scheme  org software dynamic libraries     or you can just copy them into the places manually     DrScheme may a
12.  the Control  Meta  or Command key     C key   This means press the Control key  hold it down and then press key and then release them both   For example  C e  Control E  moves the blinking caret to the end of the current line     M key   Same as C key  except with the Meta key  Depending on your keyboard  Meta may be called     Left        Right    or have a diamond symbol  but it s usually on the bottom row next to the space bar  M key  can also be performed as a two character sequence  first  strike and release the Escape key  then strike key   Under Windows and Mac OS  Meta is only available through the Escape key     DEL   The Delete key   SPACE   The Space bar     Note  On most keyboards      lt     and     gt     are shifted characters  So  to get M  gt   you actually have to type  Meta Shift  gt   That is  press and hold down both the Meta and Shift keys  and then strike     gt         Note  Many of the key bindings can also be done with menu items     Under Windows  some of these keybindings are actually standard menu items  Those keybindings will behave  according to the menus  unless the Enable keybindings in menus preference is unchecked     If you are most familiar with Emacs style key bindings  you should uncheck the Enable keybindings in menus  preference  Many of the keybindings below are inspired by Emacs   3 3 1 Moving Around    e C f move forward one character  e C b move backward one character    M f move forward one word    e M b move backward one word   
13. About DrScheme    DrScheme is a graphical environment for developing programs using the Scheme programming language   DrScheme runs under Windows  95 and up   Mac OS  and Unix X     2  Interface Essentials    The DrScheme window has three parts  a row of buttons at the top  two editing panels in the middle  and  a status line at the bottom                                                                          DrScheme  File Edit Show Language Scheme Windows Help menus  ae  Save Check Syntax   Step  Execute  Break    buttons  33 Square   number   gt  number       to produce the square of x   define  square x        x x      definitions window       Welcome to DrScheme  version 200  Language  Beginning Student    gt   square 2    4 interactions window   gt                                5 2  Unlocked not running   status line             The top editing panel  called the definitions window  is for defining Scheme programs  The above figure  shows a program that defines the function square     The bottom panel  called the interactions window  is for evaluating Scheme expressions interactively  The  Language line in the interactions window indicates which primitives are available in the definitions and  interactions windows  In the above figure  the language is Beginning Student  which is the default language     Clicking the Execute button evaluates the program in the definitions window  making the program   s defi   nitions available in the interactions window  Given the defi
14. Beginning Student through Advanced  Student languages  the boolean combination forms require at least two sub expressions  This restriction  helps detect missing or ill formed sub expressions in a Boolean expression     2  Interface Essentials 2 5  Languages       e set  disallowed on arguments     In the Advanced Student language  set  cannot be used to mutate vari   ables bound by lambda  This restriction ensures that the substitution model of function application  is consistent with DrScheme s evaluation     e Improper lists disallowed     A proper list is either an empty list or a list created by consing onto  a proper list  In the Beginning Student through Advanced Student languages  cons constructs only  proper lists  signaling an error if the second argument is not a proper list  Since beginning students  do not need improper lists  this restriction help detect logical errors in recursive functions     e Dot is diallowed     In the Beginning Student through Advanced Student languages  a delimitted  period is disallowed   e g   as an improper list constructor in a quoted form  or for defining multi arity  procedures      e Keywords disallowed as variable names     In the Beginning Student through Advanced Student lan   guages  all syntactic form names are keywords that cannot be used as variable names     e Re definitions are disallowed     In the Beginning Student through Advanced Student languages  top   level names can never be re defined     e Function definitions a
15. Language menu item  15   Clear All Teachpacks menu item  15  Clear Error Highlight menu item  15  Clear menu item  14   Close menu item  13   Collapse menu item  15   Color syntax interactively preference  18  Comment Out with a Box menu item  16  Comment Out with Semicolons menu item  16  compiler  29   configuration files  22   constructor style output  9   Copy menu item  14   Correct parens preference  18    32    Count column numbers from one preference  18  Create Executable    menu item  15   Create Servlet    menu item  15   Cut menu item  14    defaults  site specific  22  defaults  23  definitions window  2  Delete menu item  14  Disable All Test Cases menu item  16  disk requirements  28  display  10  Display line numbers in buffer  not character off   sets preference  18  DLLs  8  documentation  downloading  27  DrScheme  Environment Variables  25  DrScheme Teachpacks  24    editors  3   Emacs keybindings  19   Enable keybindings in menus preference  18  error highlighting  4   evaluating expressions  4   Execute button  4   Execute menu item  15   execution speed  30    file extensions  21   filename button  2   Find Again menu item  14   Find menu item  14  18   Flash paren match preference  18  flashing parenthesis matches  3  font preference  17   formatting Scheme code  4  frequently asked questions  27    graphical interface  2  details  13  gray highlight regions  3    Help Desk  28   Help Desk menu item  17   Help menu item  17   Hide Definitions menu item
16. PLT DrScheme  Programming Environment Manual    PLT  scheme plt scheme org     206 1  Released January 2004    Copyright notice  Copyright   1996 2003 PLT    Permission to make digital hard copies and or distribute this documentation for any purpose is hereby  granted without fee  provided that the above copyright notice  author  and this permission notice appear in  all copies of this documentation     Send us your Web links    If you use any parts or all of the PLT Scheme package  software  lecture notes  for one of your courses  for  your research  or for your work  we would like to know about it  Furthermore  if you use it and publicize the  fact on some Web page  we would like to link to that page  Please drop us a line at scheme plt scheme org   Evidence of interest helps the DrScheme Project to maintain the necessary intellectual and financial support   We appreciate your help     Thanks    This manual was typeset using TX  SATEX  and tex2page  Some typesetting macros were originally  taken from Julian Smart   s Reference Manual for wrWindows 1 60  a portable C   GUI toolkit     This manual was typeset on February 9  2004     Contents    1 About DrScheme    2 Interface Essentials    3    2 1  Butt  ns s ses    2 2 The Editor       23 The Interactions Window     446 4 404      040 c8   5 402 644864 ee 4444 oad eee    2 4 Errors    2 5 Languages       2 6 Executables        2 7 Printed Results    Beel    Constructorstyle Output oo c sa aa easa s aa Poe a a a aa ee E a   
17. age  corresponding to  one of the files in plt collects string constants  it only shows the unset string constants matching that  language    This environment variable must be set when  zo files are made  To ensure that you see its output  properly  run setup plt with the  c option  set the environment variable  and then run setup plt again     26    5  Frequently Asked Questions    5 1 Supported Operating Systems and Installation    Where can I get DrScheme and or documentation   DrScheme is available for download at  http   www drscheme org     Some documentation is provided with DrScheme  accessible through Help Desk  Other documentation is  provided online in HTML format and is also available for download in Adobe PDF format at    http    download plt scheme org doc     How much does DrScheme cost     DrScheme is absolutely free for anyone to use  However  there are restrictions on the way that DrScheme  can modified and redistributed  Please read the GNU Library General Public License in the distribution for  details     What operating systems are supported for DrScheme     Windows  95 and up   Mac OS X  and Unix with the X Window System     How much memory is needed to run DrScheme     To run DrScheme comfortably  your machine should have at least 128 MB of RAM     I don   t have that much memory  Are there any other PLT options     MrEd is PLT   s raw graphical Scheme implementation  used to execute DrScheme   MrEd provides a minimal  read eval print loop  but MrEd doe
18. and Mac OS  a pound sign     is added to the start and end of the file   s name  then a  number is added after the ending pound sign  and then one more pound sign is appended to the name   The number is selected to make the autosave filename unique     e Under Windows  the file   s extension is replaced with a number to make the autosave filename unique     3 4 3 Preference Files    On start up  DrScheme reads configuration information from a preferences file  The name and location of  the preferences file depends on the platform and user      e Under Unix  preferences are stored in  plt prefs ss in the user   s home directory     e Under Windows  if the HOMEDRIVE and HOMEPATH environment variables are defined  preferences  are stored in  7 HOMEDRIVE   HOMEPATH  plt prefs ss  otherwise preferences are stored in  plt prefs ss in the directory containing the MrEd executable     Windows NT  XP  2000  When DrScheme is launched under Windows NT  XP  or 2000 and  HOMEDRIVE and HOMEPATH are not set  Windows automatically sets the variables to indicate  the root directory of the main disk  Therefore  when HOMEDRIVE and HOMEPATH are not set  the  preferences file plt prefs ss is saved in the root directory of the main disk     e Under Mac OS X  preferences are stored in  plt prefs ss in the user s preferences folder  Under Mac  OS Classic  preferences are stored in plt prefs ss in the system preferences folder     A lock file is used while modifying the preferences file  in the same d
19. be of the form  identifier       This restriction helps detect confusing  misuses of parentheses  such as  1  or     3 4    which is a common mistake among beginners who  are used to the optional parentheses of algebra     e Top level required at function call position     In the Beginning Student languages  procedure calls  must be of the form  top level identifier       and the number of actual arguments must match the  number of formal arguments if top level identifier is defined  This restriction helps detect confusing  misuses of parentheses  such as  x  where z is a function argument  DrScheme can detect such mistakes  syntactically because Beginning Student does not support higher order procedures     e Primitive and defined functions allowed only in function call position     In Beginning Student lan   guages  the name of a primitive operator or of a defined function can be used only after the  open parenthesis of a function call  except where teachpack extensions allow otherwise  as in the  convert gui extension   Incorrect uses of primitives trigger a syntax error  Incorrect uses of defined  names trigger a run time error  DrScheme can detect such mistakes because Beginning Student does  not support higher order procedures     e lambda allowed only in definitions     In the Beginning Student through Intermediate Student lan   guages  lambda  or case lambda  may appear only in a definition  and only as the value of the defined  variable     e Free variables are not a
20. d by  let  Lt  list 0     list lt It   prints  as     shared    1   list 0     list  1   1     instead of     list  list 0   list 0       2 6  Executables 2  Interface Essentials       2 6 Executables    DrScheme s Create Executable    menu lets you create an executable for your program that you can start  without first starting DrScheme  To create an executable  first save your program to a file and set the  language and teachpacks  Click Execute  just to make sure that the program is working as you expect   Beware  the executable you create will not have a read eval print loop  so be sure to have an expression that  starts your program running in the definitions window before creating the executable     Once you are satisfied with your program  choose the Create Executable    menu item from the Scheme menu   Choose a place to save the executable  You will be able to start the saved executable in the same way that  you start any other program on your computer     An executable created by Create Executable    is either a launcher executable or a stand alone executable   and it uses either a graphical  MrEd  or textual  MzScheme  engine  For programs implemented with  certain languages  Create Executable    will prompt you to choose the executable type and engine  while  other languages support only one type or engine     Each type has advantages and disadvantages     e A launcher executable tends to be small  and it uses the latest version of your program source file when  it
21. d select it through the Languagel Add Teachpack    menu item     e A tool extends the set of utilities within the DrScheme environment  For example  DrScheme s Check  Syntax button starts a syntax checking tool  and the Analyze button starts the MrSpidey tool     4 1 Teachpacks    Teachpacks are designed to supplement student programs with code that is beyond the teaching languages   Beginning Student  Intermediate Student  Advanced Student   For example  to enable students to play  hangman  we supply a teachpack that    e implements the random choosing of a word  e maintains the state variable of how many guesses have gone wrong    e manages the GUI     All these tasks are beyond students in the third week and or impose memorization of currently useless  knowledge on students  The essence of the hangman game  however  is not  The use of teachpacks enables  the students to implement the interesting part of this exercise and still be able to enjoy today   s graphics  without the useless memorization     A single Scheme source file defines a teachpack  although the file may access other files via require   The  file must contain a module  according to the naming convention laid out in the MzScheme manual  the name  of the file must be the name of the module  with an additional  scm or  ss extension on the filename    Each exported syntax definition or value definition from the module is provided as a new primitive form or  primtive operation to the user  respectively     As an 
22. e C v move forward one page   e M v move backward one page   e M  lt  move to beginning of file   e M  gt  move to end of file   e C a move to beginning of line  left     e C e move to end of line  right     19    3 3  Keyboard Shortcuts 3  Interface Reference       e C n move to next line  down    e C p move to previous line  up    e M C f move forward one S expression   e M C b move backward one S expression   e M C u move up out of an S expression   e M C d move down into a nested S expression  e M C SPACE select forward S expression    e M C p match parentheses backward       e M C left move backwards to the nearest editor box    A C left move backwards to the nearest editor box    M C right move forward to the nearest editor box    A C right move forward to the nearest editor box  e M C up move up out of an embedded editor   e A C up move up out of an embedded editor   e M C down move down into an embedded editor    e A C down move down into an embedded editor    3 3 2 Editing Operations    C d delete forward one character    C h delete backward one character    M d delete forward one word    M DEL delete backward one word    C k delete forward to end of line    M C k delete forward one S expression    M w copy selection to clipboard    C w delete selection to clipboard  cut     C y paste from clipboard  yank     C t transpose characters   e M t transpose words   e M C t transpose sexpressions   e M C m toggle dark green marking of matching parenthesis    e M C k cut com
23. em in the Edit menu     Can I change the key bindings in DrScheme     Technically  yes  but that requires in depth information about the way that DrScheme is implemented   The  necessary information is part of the MrEd toolbox manual   DrScheme currently provides no simple way to  adjust the keyboard mappings  other than to set the behavior of the Delete key  via the preferences dialog      What do those yellow and black messages mean  and how do I get rid of them     When text in the definitions window is modified  the current language is changed  or the current library is  changed  DrScheme pessimistically assumes that some definition has been changed  In this case  expressions  evaluated in the interaction window would use definitions that do not match those currently displayed in the  definitions windows  A yellow and black message warns you about this potential inconsistency  and suggests  that you resolve the inconsistency by clicking the Execute button  To suppress all but the first warning  see  the Warnings tab in the Preferences dialog     Why can   t I type in the interaction window before the the current prompt     To prevent accidental revisions of the interaction history  DrScheme disallows editing before the current  prompt  While old expressions cannot be edited in place  you can copy old expressions to the current  prompt by typing Esc p  Alternatively  place the insertion caret at the end of any old expression in the  interactions window and type Enter or Re
24. eme to evaluate  the expression by typing alt return or command return  depending on your platform      To copy the previous expression to the current prompt  type ESC p  i e   type Escape and then type p    Type ESC p multiple times to cycle back through old expressions  Type ESC n to cycle forward through  old expressions     Clicking the Execute button evaluates the program in the definitions window and makes the program   s  definitions available in the interactions window  Clicking Execute also resets the interactions window  erasing  all old interactions and removing old definitions from the interaction environment  Although Execute erases  old  gt  prompts  ESC p and ESC n can still retrieve old expressions     2 4 Errors    Whenever DrScheme encounters an error while evaluating an expression  it prints an error message in the  interactions window and highlights the expression that triggered the error  The highlighted expression might  be in the definitions window  or it might be after an old prompt in the interactions window     For certain kinds of errors  DrScheme turns a portion of the error message into a hyperlink  Click the  hyperlink to get help regarding a function or keyword related to the error     2 5 Languages    DrScheme supports multiple dialects of Scheme  The name of the current evaluation language always ap   pears in in the top of the interactions window  To choose a different language  select the Language   Choose  Language    menu item  After chang
25. enting attributes and remaining elements  are the nested XML expressions     XML boxes have two modes for handling whitespace  In one mode  all whitespace is left intact in the  resulting xexpr  In the other mode  any tag that only contains nested XML expressions and whitespace has  the whitespace removed  You can toggle between these modes by right clicking or control clicking on the  top portion of the XML box     In addition to containing XML text  XML boxes can also contain Scheme boxes  Scheme boxes contain  Scheme expressions  These expressions are evaluated and their contents are placed into the containing XML  box   s xexpr  There are two varieties of Scheme box  the standard Scheme box and the splicing Scheme box   The standard Scheme box inserts its value into the containing xexpr  The contents of the splice box must  evaluate to a list and the elements of the list are    flattened    into the containing xexpr  Right clicking or  control clicking on the top of a Scheme box opens a menu to toggle the box between a Scheme box and a  Scheme splice box     2 10 Test Cases    DrScheme also includes support for creating test cases as part of the program text  This support is designed  as an aid for students building tests as part of the How to Design Programs design recipes     Test cases in DrScheme are written in special boxes  To create one  choose Insert Test Case from the Scheme  menu in the DrScheme window  The test cases consists of three editable areas  From the t
26. es the different formats that DrScheme uses for printing results in the interactions  window  Each of the different settings here also apply to the print primitive  That is  printing in the  interactions window is identical to output produced by the print primitive     2 7 1 Constructor style Output    DrScheme   s constructor style output treats cons  vector  and similar primitives as value constructors  rather  than functions  It also treats list as shorthand for multiple cons s ending with the empty list  Constructor   style printing is valuable for beginning computer science students  because output values look the same as  input values     Results printed in DrScheme   s interactions window using constructor style printing look different than results  printed in traditional Scheme implementations  which use write to print results  The table in Figure 2 1  shows the differences between values printed in constructor style and values printed with write     2 7 2 Quasiquote style Output    Constructor style output is inconvenient for printing S expression results that represent programs  For    example  the value     lambda  x   lambda  y     x y    prints as   list    lambda  list    x   list    lambda  list    y   list         x    y     with constructor style printing     DrScheme   s quasiquote style output combines the input output invariance of constructor style printing with  the S expression readability of write  It uses quasiquote to print lists  and uses unquote to
27. example example  the following teachpack provides a lazy cons implementation  To test it  be sure to  save it in a file named lazycons scm      module lazycons mzscheme   provide  rename  lcons Icons  Icar ledr      define struct Icons  hd tl      24    4  Extending DrScheme 4 2  Tools        define syntax   lcons stx    syntax case stx       _ hd exp tl exp    syntax  make lcons   delay hd exp    delay tl eap           define  Icar Icons   force  lcons hd Icons      define  Icdr Icons   force  Icons tl lcons        Then  in this program      define  Imap f 1      Icons     f  Icar 1     Imap f  ledr 1         define all nums  Icons 1  Imap add1 all nums       the list all nums is bound to an infinite list of ascending numbers     For more examples  see the htdp directory of the teachpack directory in the PLT installation     4 2    Tools    A separate manual describes the mechanism for defining a tool  See PLT Tools  DrScheme Extension  Manual     4 3    This    Environment Variables    section lists the environment variables that affect DrScheme s behavior  See the MzScheme manual     815 4 in PLT MzScheme  Language Manual for general information about environment variables     PLTNOTOOLS When this environment variable is set  DrScheme doesn t load any tools     PLTONLYTOOL When this environment variable is set  DrScheme only loads the tools in the  collection named by the value of the environment variable  If the variable is bound to a parenthesized  list of collections  o
28. files in two formats  text and multimedia     The text format is the usual platform specific text format  Tools for moving files between platforms typically  support a    text    transfer mode that adjusts newlines and carriage returns in the test as appropriate     The multimedia format  used for saving files that contain pictures or formatted text  is platform   indepdendent  Although no other program is able to read DrScheme   s special format  a multimedia format  file can be moved between different platforms  in    binary    mode  and DrScheme will read it correctly on  the destination platform     5 3 Memory and Performance    Does DrScheme really require at least 128 MB of memory     Yes     Why do programs run more slowly in DrScheme than in other Scheme implementations  in   cluding PLT   s own MzScheme      Programs run more slowly in DrScheme because DrScheme inserts extra checks into a program to provide  information about the location of run time errors  For many languages  these checks can be disabled by  un checking Debugging in the details portion of the language selection dialog     5 4 Troubleshooting    When I run DrScheme  it is very slow and the disk is constantly running  Why     You do not have enough memory to run DrScheme  If DrScheme works well for a while  and then starts paging   using the disk a lot   then your memory configuration is borderline for DrScheme  If DrScheme usually  works well and has only suddenly started this bad behavior  then per
29. h module  The squares are colored based on the  number of lines of code in the module  If a module has more lines of code  it gets a darker color     In addition  for each normal import  a blue line drawn is from the module to the importing module   Similarly  purple lines are drawn for each for syntax import  In the initial module layout  modules  to the left import modules to the right  but since modules can be moved around interactively  that  property might not be preserved    To open the file corresponding to the module  right click on the box for that module  control click  under Mac OS      Reindent Indents the selected text according to the standard Scheme formatting conventions   Pressing  the Tab key has the same effect      Reindent All Indents all of the text in either the definitions or interactions window  depending on the  location of the selection or blinking caret     15    3 1  Menus 3  Interface Reference       66 99    Comment Out with Semicolons Puts         characters at each of the the beginning of each selected line of  text     Comment Out with a Box Boxes the selected text with a comment box     Uncomment Removes all         characters at the start of each selected line of text or removes a comment  6 99    box around the text  Uncommenting only removes a         if it appears at the start of a line and it only  removes the first         on each line     Disable All Test Cases Creates a new test case box  see section 2 10     3 1 6 Special    16    I
30. haps you have written a program that  consumes an infinite amount of memory     I think I found a bug  What should I do     First  read this section to make sure your problem does not have a standard answer  If you need to  submit  a bug report using the form available from the home page of Help Desk  Alternatively  you may submit a  bug report using the Web at    http    bugs plt scheme org     30    5  Frequently Asked Questions 5 4  Troubleshooting       How do I send PLT a question     If you have a question that is not answered in the documentation or this list of    Frequently Asked Questions        send mail to    scheme plt scheme  org    31    Index       18    define      button  2   LOCK plt prefs ss  22   LOCKplt prefs ss  22      bak  18  22   plt prefs ss  22    sch  21    scm  21     Ss  21    Library  Frameworks  8   gt  prompt  4    About DrScheme    menu item  17   Add Teachpack    menu item  15   Advanced Student language  5   alpha renaming  3   Ask about clearing test coverage preference  18   Ask before changing save format preference  18   Auto save files preference  18   Automatically print to postscript file preference   18   autosave files  22    backup files  22   Backup files preference  18   Beginning Student language  4   Beginning Student language with List Abbrevia   tions  5   Break button  3   Break menu item  15   Bring Frame to Front    menu item  17    changing keybindings  29   Check for Updates    menu item  17  Check Syntax  3   Choose 
31. he find string  and  finds the next occurrence of the text that was last searched for     Keybindings Shows all of the keybindings available in the current window     Preferences    opens the preferences dialog  See section 3 2  In Mac OS X  this menu item is under the  apple menu     3 1 3 View    One each of the following show hide pairs of menu items appears at any time     14    Show Definitions Shows the definitions window   Hide Definitions Hides the definitions window   Show Interactions Shows interactions window   Hide Interactions Hides interactions window     Show Program Contour Shows a    20 000 foot    overview window along the edge of the DrScheme window   Each pixel in this window corresponds to a letter in the program text     Hide Program Contour Hides the contour window     Show Profile Shows the current profiling report  This menu is only useful if you have enabled profiling  in the Language dialog  Profiling does not apply to all languages  When it does  the checkbox that  enables it is in the details portion of the dialog     Hide Profile Hides any profiling information currently displayed in the DrScheme window     3  Interface Reference 3 1  Menus       Note     Split Splits the current window in half to allow for two different portions of the current window to be  visible simultaneously     Collapse    If the window has been split before  this menu item becomes enabled  allowing you to collapse the split  window     whenever a program is executed  the 
32. ing the language  click Execute to reset the language in the interactions  window     Five of DrScheme   s languages are specifically designed for teaching     2  Interface Essentials 2 5  Languages       Beginning Student is a small version of Scheme that is tailored for beginning computer science students     Beginning Student with List Abbreviations is an extension to Beginning Student that prints lists with  list instead of cons  and accepts quasiquoted input     Intermediate Student adds local bindings and higher order functions     Intermediate Student with Lambda adds anonymous functions     e Advanced Student adds mutable state     The teaching languages different from conventional Scheme in a number of ways  described below     DrScheme also supports several languages for experienced programmers     e Standard  R  RS  contains those primitives and syntax defined in the R  RS Scheme standard  See the  Revised  Report on the Algorithmic Language Scheme for details     e PLT Textual  MzScheme  extends RRS with exceptions  threads  objects  modules  components  regu   lar expressions  TCP support  filesystem utilities  and process control operations  See PLT MzScheme   Language Manual for details     e PLT Graphical  MrEd  extends MzScheme with a graphical toolbox for creating GUI applications   with special support for editor applications  hence the Ed in MrEd   See also PLT MrEd  Graphical  Toolbox Manual     e PLT Pretty Big extends MrEd with the forms of the Advanced
33. interactions window is made visible if it is hidden     3 1 4 Language    Choose Language Opens a dialog for selecting the current evaluation language  Click Execute to make the  language active in the interactions window  See section 2 5 for more information about the languages     Add Teachpack    Opens a find file dialog for choosing a teachpack to extend the current language   Click Execute to make the teachpack available in the interactions windows  See extending drscheme  for information on creating teachpacks     Clear All Teachpacks Clears all of the current teachpacks  Click Execute to clear the teachpack from  the interactions window     In addition to the above menus  there is a menu item for each teachpack that clears only that one teachpack     3 1 5 Scheme    Execute Resets the interactions window and executes the program in the definitions window   Break Breaks the current evaluation    Kill Terminates the current evaluation    Clear Error Highlight Removes the red background that signals the source location of an error     Create Executable    Creates a separate launcher for running your program  See sec executables for  more info     Create Servlet    Creates a servlet with the contents of the current definitions window  for use in the  web server     Module Browser    Prompts for a file and then opens a window showing the module import structure  for the module import DAG starting at the selected module     The module browser window contains a square for eac
34. irectory as the preferences file  Under  Windows and Mac OS Classic  the lock file is named  LOCKplt prefs ss  and on other platforms  it is   LOCK plt prefs ss        1The MzScheme procedure find system path returns the platform specific path when given the argument  pref file     22    3  Interface Reference 3 4  DrScheme Files       If the user specific preferences file does not exist  and the file plt prefs ss in the defaults collection does exist   then it is used for the initial preference settings   See Library Collections and MzLib   16 in PLT MzScheme   Language Manual for more information about collections   This file thus allows site specific configuration  for preference defaults  To set up such a configuration  start DrScheme and configure the preferences to  your liking  Then  exit DrScheme and copy your preferences file into the defaults collection as plt prefs ss   Afterward  users have no preferences will get the preference settings you chose     23    4  Extending DrScheme    DrScheme supports two forms of extension to the programming environment     e A teachpack extends the set of procedures that are built into a language in DrScheme  For example   a teachpack might extend the Beginning Student language with a procedure for playing sounds     Teachpacks are particularly useful in a classroom setting  where an instructor can provide a teachpack  that is designed for a specific exercise  To use the teachpack  each student must download the teachpack  file an
35. le search  The  results of the search are displayed in a separate window     Close Closes this DrScheme window  If this window is the only open DrScheme window  DrScheme  quits     Quit or Exit Exits DrScheme  under Mac OS X this menu item is in the apple menu      13    3 1  Menus 3  Interface Reference       3 1 2 Edit    All Edit menu items operate on either the definitions or interactions window  depending on the location of  the selection or blinking caret  Each window maintains its own Undo and Redo history     Undo Reverses an editing action  Each window maintains a history of actions  so multiple Undo  operations can reverse multiple editing actions     Redo Reverses an Undo action  Each window  and boxed subwindow  maintains its own history of  Undo actions  so multiple Redo operations can reverse multiple Undo actions     Cut Copies the selected text to the clipboard and deletes it from the window   Copy Copies the selected text to the clipboard    Paste Pastes the current clipboard contents into the window    Delete or Clear Deletes the selected text    Select All Highlights the entire text of the buffer    Wrap Text Toggles between wrapped text and unwrapped text in the window     Find Opens a search dialog or  depending on the preferences  an interactive searching window attached  to the frame     Find Again Finds the next occurrence of the text that was last searched for     Replace  amp  Find Again Replaces the selection with the replace string  if it matches t
36. lent and  x and  X represent the same value  The teaching languages are case sensitive by default   and other languages are usually case insensitive  Case sensitivity can be adjusted through the detail  section of the language selection dialog          More precisely  Pretty Big is MrEd extended with the following MzLib libraries  see PLT MzLib  Libraries Manual   etc ss   file ss  list ss  class ss  unit ss  unitsig ss  include ss  defmacro ss  pretty ss  string ss  thread ss  math ss  match ss  and shared ss     2 5  Languages 2  Interface Essentials       e All numbers are exact unless  i is specified     In the Beginning Student through Intermediate Student  with Lambda languages  numbers containing a decimal point are interpreted as exact numbers  This  interpretation allows students to use familar decimal notation without inadvertently triggering inexact  arithmetic  Exact numbers with decimal representations are also printed in decimal  Inexact inputs  and results are explicitly marked with  i     e Procedures must take at least one argument     In the Beginning Student through Intermediate Student  languages  defined procedures must consume at least one argument  Since the languages have no side   effects  zero argument functions are not useful  and rejecting such function definitions helps detect  confusing syntactic mistakes     e Identifier required at function call position     In the Beginning Student through Intermediate Student  languages  procedure calls must 
37. levels  See the Professor Beginner Language   ProfessorJ Intermediate Language  and Professor  Advanced Language manuals for details    Insert XML Box   This menu item inserts an XML box  XML boxes must contain XML s concrete syntax and  they evaluate to x expressions  which are s expressions representing the XML expression  See also  drscheme sec xml    Insert Scheme Box   Inserts a Scheme box  These boxes contain Scheme code and are meant to be inside XML boxes  See  also drscheme sec xml    Insert Scheme Splice Box    Inserts a Scheme splice box  These boxes are intended to be inside XML boxes  The Scheme ex   pression inside must evaluate to a list and that list is spliced into the containing XML box  See also  drscheme sec xml     Insert Test Case Creates a new test case box  see section 2 10     3  Interface Reference 3 2  Preferences       3 1 7 Windows    e Bring Frame to Front     Opens a window that lists all of the opened DrScheme frames  Selecting one of them brings the window  to the front     e Most Recent Window Toggles between the currently focused window and the one that most recently  had the focus     Additionally  after the above menu items  this menu contains an entry for each window in DrScheme  Se   lecting a menu item brings the corresponding window to the front     3 1 8 Help    e Help Desk Opens the Help Desk  This is the clearing house for all documentation about DrScheme and  its language     e About DrScheme    Shows the credits for DrScheme     e
38. llowed     In the Beginning Student through Advanced Student languages   every variable referenced in the definitions window must be defined  pre defined  or the name of a local  function argument     e quote works only on symbols  quasiquote diallowed     In the Beginning Student language  quote  and   can specify only symbols  This restriction avoids the need to explain to beginners why 1 and    1  are equivalent in standard Scheme  In addition  quasiquote       unquote     unquote splicing  and     are disallowed     e Unmatched cond case is an error     In the Beginning Student through Advanced Student languages   falling through a cond or case expression without matching a clause signals a run time error  This  convention helps detect syntactic and logical errors in programs     e Conditional values must be true or false     In the Beginning Student through Advanced Student  languages  an expression whose value is treated as a boolean must return an actual boolean  true or  false  This restriction  which applies to if  cond  and  or  nand  and nor expressions  helps detect  errors where a boolean function application is omitted     e       and   take at least two arguments     In the Beginning Student through Advanced Student  languages  mathematical operators that are infix in algebra notation require at least two arguments in  DrScheme  This restriction helps detect missing arguments to an operator     e and  or  nand  and nor require at least 2 expressions     In the 
39. load links as well as the file size at the top of the page     How much disk space does DrScheme consume     Around 35 MB in its normal configuration  not including the optional documentation     5 2 Using DrScheme    How do I find general help for DrScheme   Select Help Desk in DrScheme s Help menu     How can I get my browser to find Help Desk when it   s configured to use a Web proxy     Help Desk uses a Web server running on the machine running DrScheme  A Web proxy does not know about  that server  In your browser options  have the browser ignore the proxy for the address 127 0 0 1     How do I run MrFlow  DrScheme   s program analyzer  and the successor to MrSpidey    MrFlow is distributed separately from the standard DrScheme distribution  Download MrFlow from    http    www plt scheme org software mrflow     What happened to the Analyze button     Starting with version 51  PLT distributes DrScheme without the analysis tool  See the previous answer for  information about obtaining MrFlow     28    5  Frequently Asked Questions 5 2  Using DrScheme       How do I customize DrScheme     The Edit menu contains a Preferences item that opens the preferences dialog     How do I turn off parenthesis flashing and the gray background behind expressions     Use the Edit Preferences menu item     What are the key bindings in DrScheme     Some basic key bindings are listed in the DrScheme manual  which is accessible via the Help button in  DrScheme  See also the Keybindings menu it
40. lso ask you to choose a base executable  The choices are MrEd and MzScheme  MzScheme  exectables are smaller  but have no graphical libraries  Also  under Mac OS X  executables created with  MzScheme as the base can only be run from the commandline  Using the MrEd base executable means that  your executable can also be launched from the finder     Tip  Disable debugging in the language dialog before creating your launcher  With debugging enabled  you  will see a stack trace with error messages  but your program will run more slowly  To disable debugging   open the language dialog  click the Show Details button  and click the No debugging or profiling check box  if  it is available     2  Interface Essentials    2 7  Printed Results                                                                Input Expression Constructor output write output   cons 1 2   cons 1 2  G  2    list 1 2   list 1 2   1 2    2002   list 1 2   1 2     vector 1 2 3   vector 1 2 3    1 2 3     box 1   box 1   81   lambda  x  x   lambda  a         lt procedure gt    gt  sym  gt  sym sym   make s 1 2   make s 1 2    lt structure s gt   20 empty O   t true  t   f false  f  addi addi   lt primitive add1 gt    list  void    list  void      lt void gt     make weak box 1     make weak box 1    lt weak box gt    delay 1   delay        lt promise gt    regexp  a   regexp        lt regexp gt                 Figure 2 1  Comparison of constructor style output to write    2 7 Printed Results    This section describ
41. nition of square as in the figure above  typing   square 2  in the interactions window produces the result 4     The status line at the bottom of DrScheme   s window provides information about the current line and position  of the editing caret  whether the current file can be modified  and whether DrScheme is currently evaluating  any expression  The recycling icon flashes while DrScheme is    recycling    internal resources  such as memory     2 1 Buttons    The left end of the row of buttons in DrScheme contains a miniature button with the current file   s name   Clicking the button opens a menu that shows the file   s full pathname  Selecting one of the menu entries  opens file starting in the corresponding directory     2  Interface Essentials 2 2  The Editor       Below the filename button is a  define      button for a popup menu of names defined in the definitions  window  Selecting an item from the menu moves the blinking caret to the corresponding definition     The Save button appears whenever the definitions window is modified  Clicking the button saves the contents  of the definitions window to a file  The current name of the file appears to the left of the Save button  but  a file selection dialog appears if the file has never been saved before     The Step button starts The Stepper  which shows the evaluation of a program as a series of small steps  Each  evaluation step replaces an expression in the program with an equivalent one using the evaluation rules of 
42. nly the tools in those collections are loaded  The contents of the environment  variable are read and expected to be a single symbol or a list of symbols      PLTDRCM When this environment variable is set  DrScheme installs the compilation manager before  starting up  which means that the  zo files are automatically kept up to date  as DrScheme s  or a tools   source is modified     If the variable is set to trace then CM s output is traced  using the manager trace handler procedure  from the CM library     PLTHDCM When this environment variable is set  Help Desk installs the compilation manager before  starting up  but only in standalone mode   which means that the  zo files are automatically kept up  to date  as Help Desk s source is modified     If the variable is set to trace then CM s output is traced  using the manager trace handler procedure  from the CM library     25    4 8  Environment Variables 4  Extending DrScheme       e PLTDRDEBUG When this environment variable is set  DrScheme starts up with errortrace enabled   If the variable is set to profile  DrScheme also records profiling information about itself     e PLTDRTESTS When this environment variable is set  DrScheme installs a special button in the  button bar that starts the test suite   This is only available in the source distribution     e PLTSTRINGCONSTANTS When this environment variable is set  DrScheme prints out the string  constants that have not yet been translated  If it is set to a particular langu
43. nsert Comment Box Inserts a box that is ignored by DrScheme  use it to put comments to people  reading your program     Insert Image    Opens a find file dialog for selecting an image file in GIF  BMP  XBM  or XPM format   The image is treated as a value     Insert Fraction    OPENS a dialog prompting for a mixed notation fraction and inserts that into the  current editor     Insert Large Letters    Opens a dialog asking for a line of text and inserts a large version of that  made  with semicolons and spaces  into the current editor     Insert Lambda Inserts the symbol A into the program  This has the same behavior as if lambda were  typed at this point  except that the A symbol is implicitly delimited from neighboring characters     Insert Delta  define  Inserts the symbol 6 into the program  This has the same behavior as if define  were typed at this point  except that the 4 symbol is implicitly delimited from neighboring characters     Insert Java Comment Box Inserts a box that is ignored by DrScheme  unlike the Insert Comment Box  menu item  this is designed for the ProfessorJ language levels  See the ProfessorJ Beginner Language   ProfessorJ Intermediate Language  and Professor  Advanced Language manuals for details     Insert Java Interactions Box Inserts a box that will act like an interactions window for Java  This box  will accept one Java statement or expression per line  and should only appear at the top level    This is intended for use in the ProfessorJ language 
44. op  the first is a  comment that names the test case  The second is an expression to test  The third is the expected result   Below the execpted result is a light blue box that will contain the actual result of the expression to be tested   Clicking on the triangle in the top right hides the expression to test and the expected and actual results     To run the test cases  simply click execute  The top right corner of the test case will change to either be a  check box or a red X  indicating success or failure of the test case     11    2 10  Test Cases 2  Interface Essentials       To disable all of the test cases in the definitions window  choose the Disable All Test Cases menu item in the  Scheme menu     12    3     3 1       Interface Reference    Menus    3 1 1 File    New Creates a new DrScheme window   Open    Opens a find file dialog for choosing a file to load into a definitions window   Open Recent Lists recently opened files  Choosing one of them opens that file for editing     Install PLT File    Opens a dialog asking for the location of the PLT file  either on the local disk or on  the web  and installs the contents of the PLT file     Revert Re loads the file that is currently in the definitions window  All changes since the file was last  saved will be lost     Save Definitions Saves the program in the definitions window  If the program has never been saved  before  a save file dialog appears     Save Definitions As    Opens a save file dialog for choosing a de
45. or right button clicking  depending on the platform DrScheme  runs on  on the argument to require activates a popup menu that lets you open the file that contains  the required module     Passing the mouse cursor over a require expression inside a module shows all of the variables that are  used from that require expression  Additionally  if no variables are used from that require expression   it is colored like an unbound variable     Also  passing the mouse cursor over a variable that is imported from a module shows the module that  it is imported from in a status line at the bottom of the frame     The Execute button evaluates the program in the definitions window and resets the interactions window     The Break button interrupts an evaluation  or beeps if DrScheme is not evaluating anything  For example   after clicking Execute or entering an expression into the interactions window  click Break to cancel the  evaluation  Click the Break button once to try to interrupt the evaluation gracefully  click the button twice  to killing the evaluation immediately     2 2 The Editor    DrScheme   s editor provides special support for managing parentheses in a program  When the blinking caret  is next to a parenthesis  DrScheme shades the region between the parenthesis and its matching parenthesis     2 3  The Interactions Window 2  Interface Essentials       This feature is especially helpful when for balancing parentheses to complete an expression  Furthermore  if  you type a clo
46. ox as input  If you execute the program   define v  read       display v   v    and provide the input S expression  1 2   the interactions window ultimately appears as follows         1 2     1 2     cons 1  cons 2 empty      gt              In this example  display produces output immediately beneath the input you typed  but the final result  was printed outside the box because it is the result of the program  rather than explicit output   The above    10    2  Interface Essentials 2 9  XML       example assumes constructor style printing  With traditional value printing  the final line outside the box  would be  1 2       Entering the same program line by line in the interactions window produces a different looking result      gt   define v  read     1 2     gt   display v     1 2     gt v     cons 1  cons 2 empty     gt                       Although it is the same program as before  entering the program expression by expression demonstrates how  each prompt creates its own I O box     2 9 XML    DrScheme has special support for XML concrete syntax  The Special menu s Insert XML Box menu inserts  an embedded editor into your program  In that embedded editor  you type XML   s concrete syntax  When  a program containing an XML box is evaluated  the XML box is translated into an x expression  or xexpr    Xexprs are s expression representation for XML expressions  Each xexpr is a list whose first element is a  symbol naming the tag  second element is an association list repres
47. plete sexpression       e M   wrap selection in parentheses    20    3  Interface Reference 3 4  DrScheme Files       e M   wrap selection in square brackets   e M   wrap selection in curly brackets   e M S L wrap selection in  lambda         and put the insertion point in the arglist of the lambda  e C _ undo   e C   redo   e C x u undo    e M o toggle overwrite mode    3 3 3 File Operations  e C x C s save file    e C x C w save file under new name    3 3 4 Searching  e C s search for string forward    e C r search for string backward    3 3 5 Miscellaneous    e f5 Execute    3 3 6 Interactions    The interactions window has all of the same keyboard shortcuts as the definitions window plus a few more     e M p bring the previously executed expression down to the prompt     e M n bring the expression after the current expression in the expression history down to the prompt     3 4 DrScheme Files    3 4 1 Program Files  The standard extension for a Scheme program file is  scm  The extensions  ss and  sch are also acceptable     DrScheme   s editor can saves a program file in two different formats     e Plain text format     All text editors can read this format  DrScheme saves a program in plain text  format by default  unless the program contains images or text boxes   Plain text format does not  preserve images or text boxes      Plain text format is platform specific because different platforms have different newline conventions   However  most tools for moving files acros
48. r teachpack is changed  without a corresponding click on Execute  Otherwise  the warning appears on every interaction   Ask about clearing test coverage     If checked  when test coverage annotations are displayed  DrScheme prompts about removing them  This setting only applies to the PLT languages   DrScheme never asks in the teaching languages     This preference panel configures the profiling report  The band of color shows the range of colors that  profiled functions take on  Colors near the right are used for code that is not invoked often and colors  on the right are used for code that is invoked often     If you are interested in more detail at the low end  choose the    Square root    check box  If you are  interested in more detail at the upper end  choose the    Square    check box     3  Interface Reference 3 3  Keyboard Shortcuts       e Browser    The Use Help Desk browser for external URLs check box determines if Help Desk visits urls that lead  out of our documentation in the platform specific browser  or with Help Desk itself     This preferences panel also allows you to configure your HTTP proxy  Contact your system adminis   trator for details     3 3 Keyboard Shortcuts    Most key presses simply insert a character into the editor     a        3              etc    Other keys and key combina   tions act as keyboard shortcuts that move the blinking caret  delete a line  copy the selection  etc  Keyboard  shortcuts are usually trigger by key combinations using
49. re allowed only in the definitions window     In the Beginning Student languages   function definitions are not allowed in the interactions window     The teaching languages also deviate from traditional Scheme in printing values  Different printing formats  can be selected for any language through the detail section of language selection dialog     e Constructor style output     See drscheme sec printing cons   e Quasiquote style output     See drscheme sec printing quasi     e Rational number printing     In the teaching languages  all numbers that have a finite decimal expansion  are printed in decimal form  For those numbers that do not have a finite decimal expansion  such as  4 3  DrScheme gives you a choice  It either prints them as mixed fractions or as repeating decimals   where the repeating portion of the decimal expansion is shown with an overbar  In addition  DrScheme  only shows the first 25 digits of the number s decimal expansion  If there are more digits  the number  appears with an ellipses at the end  Click the ellipses to see the next 25 digits of the expansion     This setting only controls the initial display of a number  Right clicking or control clicking on the  number lets you change from the fraction representation to the decimal representation     e write output     Prints values with write     e Show sharing in values     Prints interaction results using the shared syntax  which exposes shared  structure within a value  For example  the list create
50. rtable editing in Emacs and find the standard menu keybindings interfere with the  Emacs keybindings     x Color syntax interactively     If checked  DrScheme colors your syntax as you type     Automatically print to postscript file     If checked  printing will automatically save postscript    files  If not  printing will use the standard printing mechanisms for your computer         Scheme    e Warnings              x         e Profiling    Highlight between matching parens     If checked  the editor marks the region between matching  parenthesis with a gray background  in color  or a stipple pattern  in monochrome  when the  flashing caret is next to a parenthesis    Correct parens     If checked  the editor automatically converts a typed         to         to match           or it converts a typed         to         to match            Flash paren match     If checked  typing a closing parenthesis  square bracket  or quotation  mark flashes the matching open parenthesis  bracket  quote    Parenthesis highlight color     configures the color used to highlight matching parenthesis     Ask before changing save format     If checked  DrScheme consults the user before saving a file in  non text format  see drscheme file formats     Verify exit     If checked  DrScheme consults the user before exiting    Only warn once when executions and interactions are not synchronized     If checked  DrScheme warns  the user on the first interaction after the definitions window  language  o
51. s not provide DrScheme   s various languages  and error messages in MrEd  do not provide a source code location     MzScheme is PLT   s Scheme implementation  The language is the same as MrEd without graphics  MzScheme  provides little programming support  so its memory requirements are minimal  a few MB usually suffices      The standard DrScheme distribution includes all of the above programs  MzScheme distributions can be  downloaded through    http    www plt scheme  org software mzscheme     27    5 2  Using DrScheme 5  Frequently Asked Questions       Does DrScheme run under Mac OS versions earlier than Mac OS X     No     Does DrScheme run under DOS or Windows 3 1     No     Does MzScheme  PLT   s text only Scheme  run under DOS or Windows 3 1     No     How do I install DrScheme     Obtain a DrScheme distribution from the above address  For Windows  the distribution is an installer  program  running this program installs DrScheme  For MacOS  the distributiton is a disk image containing  a meta package  mpkg  installer  For Unix X  the distribution is a self extracting shell program  running it  will unpack and install the archive  and can help in setting up some standard links  In all cases  the final  download page provides detailed  platform specific installation instructions     How large is the distribution archive     Distribution archives vary in sizes  From the download page  select your platform and click the download  button     the next screen will have down
52. s platforms support a    text    transfer mode that adjusts  newlines correctly     21    3 4  DrScheme Files 3  Interface Reference       e Multimedia format     This format is specific to DrScheme  and no other editor recognizes it  DrScheme  saves a program in multimedia format by default when the program contains images  text boxes  or  formatted text     Multimedia format is platform independent  Use a    binary    transfer mode when moving multimedia   format files across platforms   Using    text    mode may corrupt the file      3 4 2 Backup and Autosave Files    When you modify an existing file in DrScheme and save it  DrScheme copies the old version of the file to a  special backup file if no backup file exists  The backup file is saved in the same directory as the original file   and the backup file   s name is generated from the original file   s name     e Under Unix and Mac OS  a tilde     is added to the end of the file   s name     e Under Windows  the file   s extension is replaced with  bak     When a file in an active DrScheme editor is modified but not saved  DrScheme saves the file to a special  autosave file after five minutes  in case of a power failure or catastrophic error   If the file is later saved  or  if the user exists DrScheme without saving the file  the autosave file is removed  The autosave file is saved  in the same directory as the original file  and the autosave file   s name is generated from the original file   s  name     e Under Unix 
53. sing parenthesis         that should match an opening square bracket          the editor automatically  converts the         into a    J     DrScheme beeps whenever a closing parenthesis does not match an opening  parenthesis     Although whitespace is not significant in Scheme  DrScheme encourages a particular format for Scheme  code  When you type Enter or Return  the editor inserts a new line and automatically indents it  To make  DrScheme re indent an existing line  move the flashing caret to the line and hit the Tab key   The caret can  be anywhere in the line   You can re indent an entire region by selecting the region and typing Tab     2 3 The Interactions Window    The interactions window lets you type an expression after the  gt  prompt for immediate evaluation  You  cannot modify any text before the last  gt  prompt  To enter an expression  the flashing caret must appear  after the last prompt  and also after the space following the prompt     When you type a complete expression and hit Enter or Return  DrScheme evaluates the expression and  prints the result  After printing the result  DrScheme creates a new prompt for another expression  Some  expressions return a special    void    value  DrScheme never prints void  but instead produces a new prompt  immediately     If the expression following the current prompt is incomplete  then DrScheme will not try to evaluate it  In  that case  hitting Enter or Return produces a new  auto indented line  You can force DrSch
54. stination file to save the program in the  definitions window  Subsequent saves write to the newly selected file     Save Other Contains these sub items        Save Definitions As Text    Like Save Definitions As     but the file is saved in plain text format  see  drscheme file formats   Subsequent saves also write in plain text format        Save Interactions Saves the contents of the interactions window to a file  If the interaction constants  have never been saved before  a save file dialog appears        Save Interactions As    Opens a save file dialog for choosing a destination file to save the contents  of the interactions window  Subsequent saves write to the newly selected file        Save Interactions As Text    Like Save Interactions As     but the file is saved in plain text format   see drscheme file formats   Subsequent saves are write in plain text format     Log Definitions and Interactions    Starts a running of log of the text in the interactions and definitions  windows  organized by executions  In a directory of your choosing  DrScheme saves files with the  names 01 definitions  01 interactions  02 definitions  02 interactions  etc as you execute and interact  with various programs     Print Definitions    Opens a dialog for printing the current program in the definitions window   Print Interactions    Opens a dialog for printing the contents of the interactions window     Search in Files    Opens a dialog where you can specify the parameters of a multi fi
55. turn to copy the expression down to the current prompt     Why doesn   t let work   or letrec or lambda or set   etc     DrScheme is initially configured to use the    Beginning Student    teaching language  This language prevents  many common student errors  but will not evaluate all Scheme programs  To remedy this  choose a language  such as    Standard    or    Pretty Big        Is there a DrScheme compiler     Technically  DrScheme is a compiler as well as an interpreter  Each time the user loads a program or enters  expression in the interactions window  DrScheme compiles and then executes the program or expression     PLT   s mzc transforms Scheme programs into C programs  and then uses a third party C compiler to produce  executable code  Under Windows  either Microsoft Visual C or gcc  a free compiler from Cygnus Solutions   works as the C compiler  Under MacOS  CodeWarrior works  Under Unix  most any compiler works     For details  see the mzc documentation  available from     http    download plt scheme org doc     29    5 3  Memory and Performance 5  Frequently Asked Questions       Can I produce stand alone executables from Scheme code     To produce a standalone executable that only works for your particular installation of DrScheme  see  sec executables     In addition  the mzc compiler can be used to produce stand alone executables  See the mzc documentation  for more information     Can files saved in DrScheme be transferred between platforms   DrScheme saves 
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
クラミジア トラコマチス検出用  Mille choristes-Tract  Consultez le mode d`emploi du programme minceur  CDA RV701 cooker  Samsung SP-P300ME User Manual  Acer XE.H8PPN.006 Tablet User Manual  cAchtung  Original Bedienungsanleitung FUXTEC FX  Manual do Utilizador de Software      Copyright © All rights reserved. 
   Failed to retrieve file