Werkzeuge: Was ist DrScheme - Einleitung
Released by matroid on Mo. 22. Oktober 2007 21:28:49 [Statistics]
Written by javaguru - 4616 x read [Outline] Printable version Printer-friendly version -  Choose language   
Informatik

\(\begingroup\)
Bild
Mit diesem Artikel möchte ich eine Anleitung zur korrekten Installation der Arbeitsumgebung der Programmiersprache Scheme geben. In den folgenden Teilen dieser Serie möchte ich euch dann auch noch den Einstieg in diese funktionale Programmiersprache Scheme erleichtern.

Was ist DrScheme?

Bei DrScheme handelt es sich um eine integrierte Entwicklungsumgebung (IDE) für die funktionale Programmiersprache Scheme. Die Software ist mit einer grafischen Benutzeroberfläche ausgestattet. DrScheme kommt oft in Informatikkursen von Universitäten zum Einsatz und wird wegen der einfachen Bedienung geschätzt.

Installation

Um mit der Installation zu beginnen, besuche zunächst mit deinem Internetbrowser die Webseite http://www.drscheme.org um die Software herunterzuladen. Wählen aus dem lilafarbenden Kasten den Eintrag Download DrScheme aus, in dem du auf diesen einmal mit der linken Maustaste klickst. Verwendest du als Betriebssystem Microsoft Windows, so kannst du einfach im rechten Bereich der Seite auf den Button mit der Beschriftung Download klicken. Ansonsten wählst du aus der Liste das passende Betriebssystem aus. Im Folgenden beschreibe ich die Installation unter dem Betriebssystem Windows. Die Installation unter den anderen Betriebssystemen verläuft jedoch ähnlich bis analog. Du musst dich jetzt nur noch für einen Downloadort entscheiden und klickst dann auf den entsprechen Link im rechten Bereich. Speichere die Datei dann auf dem Desktop ab. Beachte bitte, dass der Download einige Zeit in Anspruch nehmen kann, da die Datei ungefähr 13MB groß ist. Starten Sie die Installation mit einem Doppelklick auf die gerade heruntergeladene Datei. Auf den folgenden Seiten sehen Sie jeweils den Installationsbildschirm mit einem kurzen Kommentar, wie Sie die Installation erfolgreich abschließen können.
Bild WÄHLE HIER EINFACH DIE SCHALTFLÄCHE NEXT AUS, UM DIE INSTALLATION FORTZUSETZEN. Bild DIE STANDARDEINSTELLUNGEN SIND HIER OPTIMAL EINGESTELLT. Bild DIESEN BILDSCHIRM BESTÄTIGST Du EINFACH MIT EINEM WEITEREN KLICK AUF DIE SCHALTFLÄCHE INSTALL. Bild DIE INSTALLATION WIRD NUN AUTOMATISCH DURCHGEFÜHRT. DIESER VORGANG KANN EINIGE MINUTEN IN ANSPRUCH NEHMEN. Bild WIRD DIR DIESER BILDSCHIRM ANGEZEIGT, IST DIE INSTALLATION ERFOLGREICH ABGESCHLOSSEN WORDEN. KLICKE AUF DEN BUTTON FINISH UND DIE OBERFLÄCHE VON DRSCHEME WIRD ZUM ERSTEN MAL GESTARTET.

Einführung in DrScheme

Die ersten Schritte

Wenn du die Installation erfolgreich abgeschlossen hast, starte DrScheme einfach das erste Mal. Du musst jetzt noch den Sprachumfang einstellen. Wähle dazu unter dem Menü-Punkt 'Sprache'-'Sprache auswählen' 'Fortgeschritten' einfach aus und dann kann es auch schon los gehen.

Einfaches Rechnen

Du siehst jetzt vor die die Umgebung DrScheme, welche 2 große Eingabefenster unterteilt ist. Das obere Fenster ist, wie du es eventuell schon aus anderen Programmierumgebungen kennst, das Programmfenster. Hier kannst du dann später deinen eigenen Quellcode eingeben. Die Befehle werden dann wie erwartet Schritt für Schritt abgearbeitet. Darunter siehst du das DirektEingabeFenster, was an sich ziemlich nützlich sein kann. Hier kannst du einzelne oder auch mehrere Befehle/Prozeduren mal eben antesten. Ok, probieren wir das doch nun gleich einmal aus. Gebe einfach mal folgendes im DirektEingabeFenster ein: \sourceon Scheme > (+ 1 1) \sourceoff Bestätige die Eingabe nun mit der Return-Taste. DrScheme liefert nun direkt das Ergebnis: \sourceon Scheme > (+ 1 1) 2 \sourceoff Du hast jetzt irgendwie eins und eins addiert und das Ergebnis ist dann 2. Doch warum musste man das so komisch eingeben? Ich sehe ja ein, dass diese Syntax gewöhnungsbedürftig ist, aber sie hat auch ihre Vorteile und man gewöhnt sich mit der Zeit wirklich dran. Wir starten nun also unsere weiteren Versuch: \sourceon Scheme > (* 2 6) 12 > (/ 24 8) 3 > (- 125 10) 115 \sourceoff Ich stelle jetzt mal eine These bezüglich Scheme auf: Man muss den Operator immer vor die zu berechnenden Zahlen stellen. Doch das ist noch nicht alles, jede Operation muss von 2 Klammern umschlossen sein, wenn wir also \sourceon Scheme + 3 4 \sourceoff eingeben wird Scheme nichts machen und eine Art Fehlermeldung ausgeben. Diese Rechnungen hättest du bestimmt auch im Kopfrechnen können, oder? Aber wie viel ist denn 20*42.5*3*78.54? Fragen wir doch einfach mal Scheme nach der Lösung. \sourceon Scheme > (* 20 42.5 3 78.54) 200277 \sourceoff Man kann also beliebig viele Zahlen nach einem Operator angeben. Doch wie sieht es mit einer Aufgabe, wie 20*42.5*3*78.54-3*(7/2) aus? Natürlich kann man unter Scheme die einzelnen Operationen ineinander verschachteln, dabei muss man nur ein klein wenig die Rechenregeln beachten: \sourceon Scheme > (- (* 20 42.5 3 78.54) (* 3 (/ 7 2))) 200266.5 \sourceoff Also zunächst wissen wir, dass das der Term 20*42.5*3*78.54 in der Scheme-Syntax so aussieht: \sourceon Scheme (* 20 42.5 3 78.54) \sourceoff Dann wissen wir das 7/2 nach \sourceon Scheme (/ 7 2) \sourceoff umgeschrieben wird und das ganze mit 3 multipliziert so aussehen muss: \sourceon Scheme (* 3 (/ 7 2)) \sourceoff Jetzt also nur noch 3*(7/2) von 20*42.5*3*78.54 subtrahieren und wir kommen auf den Term: \sourceon Scheme (- (* 20 42.5 3 78.54) (* 3 (/ 7 2))) \sourceoff Nun kannst du also alle möglichen Mathematik-Aufgaben mit der Hilfe von Scheme lösen. Zum Abschluss dieses Kapitels will ich euch noch ein paar spezielle Operatoren nennen, die ihr vielleicht grade vermisst: \sourceon Scheme > (sqr 2) 4 > (sqrt 81) 9 > (expt 2 3) 8 \sourceoff

"Hallo Welt!"

Nicht schon wieder "Hallo Welt!". Na gut, ich werden es etwas abwandeln. Wir wollen jetzt also unsere erste Scheme-Prozedur schreiben. Für alle die sich im Programmieren nicht auskennen: Prozeduren sind erklärt Befehle, so wie das '+' oder das 'sqr'. Wir werden jetzt also neue 'Wörter' für unsrer Programm erfinden. Dazu benötigen wir das Programmfenster. Die Prozedur soll folgendermaßen aussehen: Der Benutzer soll (begruesse seinen_namen) im DirektEingabeFenster eingeben und das Programm wird ihn daraufhin freundlich begrüßen. So sieht dann die gewünschte Prozedur aus: \sourceon Scheme (define begruesse (lambda (name) (begin (display "Hallo ") (display name) (display "!")))) \sourceoff Gebe einfach mal diesen Absatz in das Programmfenster ein und klicke anschließend auf Start. Nun kannst du das Programm mal ausprobieren, in dem du im DirektEingabeFenster folgendes eingibst: \sourceon Scheme > (begruesse "Dein_Name") \sourceoff Scheme begrüßt dich daraufhin nun sehr freundlich. Wichtig dabei ist das beachten der Anführungszeichen bei "Dein_Name", denn es handelt sich hier um eine Zeichenkette. Kleiner Hinweis noch: Wenn ihr einfach Enter drückt, wenn ihr eine neue Zeile beginnen wollt, dann übernimmt Scheme automatisch das erzeugen einer übersichtlichen Struktur. So, was macht nun eigentlich dieses kurze Programm? Zunächst habe ich mit dem Schlüsselwort 'define' eine Variable mit dem Namen 'begruesse' erstellt. Dieser Variablen habe ich dann sofort eine Prozedur zugewiesen. Wir erkennen Prozeduren durch ihre festgelegte Einleitung '(lambda'. Direkt danach folgt eine Klammer, in der alle Variablen festgelegt werden, die der Benutzer später hinter dem Prozedurnamen mit angeben muss. In diesem Fall also seinen Namen. Wie ihr diese Variablen nennt, ist euch überlassen, denn sie werden nur zur Verarbeitung innerhalb der Prozedur so genannt, und sie sind auch nur innerhalb der Prozedur bekannt. Ist die Deklaration der Parameter abgeschlossen, wird die Klammer geschlossen, und der eigentliche Rumpf der Prouzedur kann eingegeben werden. Das 'begin' bewirkt, dass Scheme weiß, dass nun mehrere Befehle hintereinander folgen, bis die offene Klammer vor dem 'begin' wieder geschlossen wird. Wie schon beim Rechnen mit Plus und Minus etc. muss jede Operation eingeklammert werden, so auch das darstellen von Texten. Das erreichen wir mit dem Befehl 'display'. 'Display' verlangt immer eine Zeichenkette, in der Informatik gerne als 'String' betitelt und wird diese dann ausgeben. Also rufen wir 3 mal Display auf, um 'Hallo', den Namen 'name' und das Ausrufezeichen ! auszugeben, danach schließen wir einfach wieder alle noch offenen Klammern.

Weitere Schritte mit Scheme

Wir wollen nun unserem Programm beibringen beibringen auf unterschiedliche Eingaben des Benutzers zu reagieren. Das Schlüsselwort dafür lautet, wie auch in anderen Programmiersprachen, if. Die Prozedur soll jetzt neben dem Namen auch noch das Geschlecht in Form von 'm' für männlich oder 'w' für weiblich entgegennehmen und dann den Benutzer mit Herr oder Frau ansprechen. So sieht dann zunächst die Prozedur aus: \sourceon Scheme (define begruesse (lambda (name geschlecht) (begin (display "Hallo ") (if (equal? geschlecht "w") (display "Frau ") (display "Herr ")) (display name) (display "!")))) \sourceoff Wie bereits bekannt, wollen wir das Programm jetzt einmal testen. \sourceon Scheme > (begruesse "dein_name" "m") Hallo Herr dein_name! \sourceoff Was haben wir gemacht? Zunächst den Prozedurkopf geändert, sodass unser 'begruesse' jetzt noch den Parameter 'geschlecht' entgegennimmt. Jetzt muss nur noch an der Stelle, wo später 'Herr' oder 'Frau' stehen soll, die Unterscheidung vorgenommen werden. Bei dem Schlüsselwort if handelt es sich um eine Prozedur mit der folgenden Syntax: \sourceon Scheme (if wahr/falsch (Anweisungen, wenn wahr) (Anweisungen, wenn falsch)) \sourceoff Doch woher bekommen wir das wahr oder falsch geliefert? Wir haben doch nur 'm' oder 'w' angegeben. Natürlich, es kann ja nur etwas wahr oder falsch sein, wenn wir auch etwas gefragt haben. Also fagen wir einfach, ob für die Variable geschlecht "w" eingegeben wurde: \sourceon Scheme (equal? geschlecht "w") \sourceoff Wenn also 'geschlecht' gleich (equal) "w" ist, dann füge 'Frau' ein: ( \sourceon Scheme (display "Frau ") \sourceoff Wenn nicht, dann muss es ja ein Mann sein, also \sourceon Scheme (display "Herr ") \sourceoff Jetzt nur noch das 'if' wieder mit einer Klammer schließen, und schon müsste das ganze funktionieren.

Übung

Zur Übung könnt ihr ja noch folgendes Feature einbauen: Sollte unter Geschlecht weder "m" noch "w" eingegeben worden sein, dann soll einfach nur 'Hallo' Name ausgegeben werden. Die Lösung könnt ihr am Schluss nachlesen.

Weitere Schritte

Natürlich gibt es noch andere Möglichkeiten der Fallunterscheidung, jede mit Vor- und Nachteilen, aber ich will jetzt hier nicht näher darauf eingehen. Ich verweise nur auf die Themen 'case' und 'cond'. Jetzt wollen wir nur noch dafür sorgen, dass schon beim Klicken auf 'Ausführen' die Prozedur startet und der Benutzer nur noch reagieren muss. Also fügen wir nun noch unter der Prozedur 'begruesse' folgende Programmzeilen ein: \sourceon Scheme (define name 0) (define geschlecht 0) (display "Ihr Name? ") (set! name (read)) (display "Geschlecht? (m/w) ") (set! geschlecht (read)) (begruesse name geschlecht) \sourceoff Jetzt reicht schon ein Klick auf 'Start' und wir brauchen nur noch zu antworten. Jetzt können wir auch die Ausführungszeichen einfach weglassen. Anmerkung Die Anführungsstriche können zwar beim Namen weggelassen werden, nicht jedoch beim Geschlecht. Grund hierfür ist, das Scheme zu den Sprachen gehört, die es mit den Variablentypen nicht so ernst nehmen. Ohne Anführungsstriche wird die Variable 'Geschlecht' nicht als String interpretiert. In der Vergleichszeile mit 'equal?' wird jedoch davon ausgegangen, dass geschlecht ein string ist. Jetzt wieder zur Erklärung dieser Zeilen: Wir definieren zunächst die Variablen 'geschlecht' und 'name'. Keine Angst, es wird keine Überschneidung mit den Parametern in der 'begruesse' geben. Die Variablen lassen wir zunächst auf 0, denn sie werden später sowieso überschrieben, und zwar mit dem Befehl 'set!'. Wie der Name schon sagt setzt 'set!' eine Variable auf einen bestimmten Wert, hier also den Rückgabewert von 'read'. 'Read' wartet beim Aufruf auf die Eingabe des Benutzers, und gibt dann das eingegebene wieder. Die beiden 'display' sind nur dazu da, dass wir auch wissen, was wir dann überhaupt eingeben sollen. Zum Schluss wird nur noch unsere Prozedur 'begruesse' mit den soeben erhaltenen Daten aufgerufen, so wie wir es sonst immer per Hand gemacht haben.

Ausblick für die Zukunft

Es handelt sich hierbei um ein Einstiegstutorials. Daher ist nichts Großes geschehen, nur die Grundlagen wurden geschaffen. Aber mit Scheme lassen sich wirklich wunderbare Sachen machen, zum Beispiel das Bilden von Ableitungen, Sortieralgorithmen und sogar grafische Anwendungen sind möglich, ja sogar 3D Grafik durch OpenGl. Ich hoffe das ist Anreiz genug weiter zu machen. Viel Spaß noch beim Programmieren javaguru

Lösung

\sourceon Scheme (define begruesse (lambda (name geschlecht) (begin (display "Hallo ") (if (equal? geschlecht "w") (display "Frau ") (if (equal? geschlecht "m") (display "Herr ") (display ""))) (display name) (display "!")))) (define name 0) (define geschlecht 0) (display "Ihr Name? ") (set! name (read)) (display "Geschlecht? (m/w) ") (set! geschlecht (read)) (begruesse name geschlecht) \sourceoff
\(\endgroup\)
Get link to this article Get link to this article  Printable version Printer-friendly version -  Choose language     Kommentare zeigen Comments  
pdfFür diesen Artikel gibt es keine pdf-Datei


Arbeitsgruppe Alexandria Dieser Artikel ist im Verzeichnis der Arbeitsgruppe Alexandria eingetragen:
: Informatik :: automatisch eingefügt und unbearbeitet :
Was ist DrScheme - Einleitung [von javaguru]  
Mit diesem Artikel möchte ich eine Anleitung zur korrekten Installation der Arbeitsumgebung der Programmiersprache Scheme geben. In den folgenden Teilen dieser Serie möchte ich euch dann auch noch den Einstieg in diese funktionale Programmiersprache Scheme erleichtern.
[Die Arbeitsgruppe Alexandria katalogisiert die Artikel auf dem Matheplaneten]

 
 
Aufrufzähler 4616
 
Aufrufstatistik des Artikels
Insgesamt 624 externe Seitenaufrufe zwischen 2012.01 und 2022.01 [Anzeigen]
DomainAnzahlProz
https://google.com172.7%2.7 %
https://matheplanet.com10.2%0.2 %
http://google.de53285.3%85.3 %
http://google.ru223.5%3.5 %
http://google.pl203.2%3.2 %
http://google.nl101.6%1.6 %
http://www.uni-protokolle.de61%1 %
http://www.metager.de20.3%0.3 %
http://parisonline.me10.2%0.2 %
http://search.conduit.com10.2%0.2 %
http://suche.web.de20.3%0.3 %
http://suche.gmx.net10.2%0.2 %
http://www.bing.com20.3%0.3 %
http://search.incredimail.com10.2%0.2 %
http://de.search.yahoo.com20.3%0.3 %
http://de.wow.com10.2%0.2 %
http://google.at10.2%0.2 %
http://www.ecosia.org10.2%0.2 %
https://google.de10.2%0.2 %

Aufrufer der letzten 5 Tage im Einzelnen
Insgesamt 1 Aufruf in den letzten 5 Tagen. [Anzeigen]
DatumAufrufer-URL
2022.01.18 18:48https://google.com/

Häufige Aufrufer in früheren Monaten
Insgesamt 604 häufige Aufrufer [Anzeigen]
DatumAufrufer-URL
2012-2014 (131x)http://google.de/url?sa=t&rct=j&q=scheme tutorial deutsch
2013-2018 (131x)http://google.de/url?sa=t&rct=j&q=
201210-10 (49x)http://google.de/url?sa=t&rct=j&q=was ist dr scheme
2013-2015 (48x)http://google.de/url?sa=t&rct=j&q=potenzen in drscheme
2012-2013 (37x)http://google.de/url?sa=t&rct=j&q=drscheme
201202-02 (31x)http://google.de/url?sa=t&rct=j&q=tutorial drracket opengl
201201-01 (22x)http://google.ru/search?q=drscheme deutsche anleitung
201301-01 (20x)http://google.pl/url?sa=t&rct=j&q=drracket tutorial deutsch
201205-05 (18x)http://google.de/url?sa=t&rct=j&q=wie füge ich in dr. racket ein bild ein
201203-03 (18x)http://google.de/url?sa=t&rct=j&q=scheme hintereinander befehler
201212-12 (17x)http://google.de/url?sa=t&rct=j&q=drscheme tutorial
201204-04 (16x)http://google.de/url?sa=t&rct=j&q=scheme "hintereinander"
2020-2021 (15x)https://google.com/
201412-12 (11x)http://google.de/url?sa=t&source=web&cd=2&ved=0CB8QFjAB
201402-02 (10x)http://google.nl/url?sa=t&rct=j&q=
201302-02 (9x)http://google.de/url?sa=t&rct=j&q=tutorial drracket
201409-09 (8x)http://google.de/url?sa=t&rct=j&q=scheme deutsch tutorial
201207-07 (7x)http://google.de/url?sa=t&rct=j&q=wie definiere ich einen kreis in scheme
2012-2014 (6x)http://www.uni-protokolle.de/foren/viewt/158254,0.html

[Top of page]

"Werkzeuge: Was ist DrScheme - Einleitung" | 1 Comment
The authors of the comments are responsible for the content.

DrScheme auf Ubuntu Linux
von: Stefan_K am: Do. 03. Januar 2008 02:40:46
\(\begingroup\)Hallo, auch und insbesondere auf Ubuntu Linux ist die Installation von DrScheme sehr einfach: man startet die Paketverwaltung (Synaptic) und tippt bei "Suche" drscheme ein. Das gefundene Paket DrScheme installiert man, wobei man bejaht, das zusätzlich vorgeschlagene Paket mzscheme auch zu installieren. DrScheme findet sich übrigens unter Interpretersprachen (multiverse). Letzteres bedeutet, dass es sich um urheberrechtlich eingeschränkte Software handelt. Ohne sich durch den Paketmanager zu klicken, geht es mit einer einzigen Zeile: \sourceon sudo apt-get install drscheme \sourceoff Hierbei drückt man nur einmal auf J für Ja und alles ist fertig, inklusive mzscheme Installation und Webserverstart. Zur These im Abschnitt "Einfaches Rechnen": Scheme arbeitet mit vollständig geklammerter Polnischer Notation (Präfixnotation), daher benötigt man auch keine Operatoren-Rangfolge. Viele Grüße, StefanK \(\endgroup\)
 

 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2022 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]