Für die professionelle Entwicklung mit Erlang stehen verschiedene Editoren und IDEs zur Verfügung: Übersicht siehe Punkt 7.7. Leider konnte mich das Eclipse Plugin nicht überzeugen und das Netbeans Plugin lies sich nicht installieren und Netbeans 7, weswegen ich Notepad++ benutze zum Entwickeln (siehe unten).
Die Vorteile der funktionalen Programmiersprache Erlang
- mathematische Korrektheitsbeweise sind einfach möglich
- sehr kurzer Quelltext
- für verteilte Anwendungen sehr geeignet
- der Datentyp INT ist nicht beschränkt, keine numerischen Effekte (Runden)
- keine Seiteneffekte
Bsp. Anwendungen in Erlang geschrieben:
- CouchDB
- SimpleDB
- Yaws – Webserver
Nachteile von Erlang
- schwierig zu Erlernen
- wenig Anwendung in der Praxis, aber unter den funktionalen Programmiersprachen die verbreiteteste
- akademische Sprache
Installation von Erlang unter Windows 7
- Download der Installation Datei von erlang.org (Achtung 32bit oder 64bit Version)
- Ausführen der exe und fertig
Erstes Programm mit Modul
Damit mit eigenen Modulen und Funktionen in Erlang gearbeitet werden kann, muss Erlang folgender Maßen gestartet werden über die Windows Konsole:
- Konsole starten: Zubehör/Eingabeaufforderung (oder Ausführen: cmd)
- cd C:\Erlang\MyProjekt\
- „C:\Program Files\erl5.9.2\bin\werl“
Damit starten Erlang und das Projekt kann in dem Verzeichnis C:\Erlang\MyProjekt\ angelegt werden.
In das Verzeichnis kann jetzt eine Datei quadrat.erl gelegt werden als erstes Testprojekt mit dem Inhalt:
-module(quadrat). -compile(export_all). quadrat(X)->X*X.
Danach kann man in Erlang das Projekt kompilieren
c(quadrat).
und die Funktion quadrat im Modul aufrufen mit Parameter 4:
quadrat:quadrat(4).
Als Editor verwende ich Notepad++ mit Erlang Highlighting Plugin.
Installation des Erlang Code Highlighting Plugin für Notepad++
- einfach downloaden der erlangSyntaxDefinition.zip
- importieren: Einstellungen->Import->Designs importieren->userDefineLang.xml auswählen
- Notepadd++ neustarten
- unter Menü: Sprache kann jetzt auf Erlang geswitcht werden
Beispiel: x-mal „Hello World“ ausgeben
hallo(X) when X == 0 -> fertig; hallo(X)->io:fwrite("~s",["Hello World\n"]), hallo(X-1).
Beispiel: Das logische Und implemeniteren
und(X,Y) when X == Y->true; und(X,Y)->false.
Beispiel Aufgabe und unterschiedliche Lösungsansätze
An diesem Beispiel will ich demonstrieren, wie man ein und dasselbe Problem auf verschiedene Arten unterschiedlich elegant lösen kann:
Aufgabe:
Wenn wir alle natürlich Zahlen unter 10 auflisten, die ein Vielfaches von 3 und 5 auflisten, bekommen 3,5,6,9. Die Summe dieser Vielfachen ist 23.
Schreiben Sie eine Funktion multiple, die für einen gegebenen Wert X alle Vielfachen von 3 und 5 findet und diese aufsummiert.
Lösung 1: der unelegante Weg (von mir):
multiple(X)-> multiple(1, X, 0). multiple(X, MAX, SUM) when X == MAX -> SUM; multiple(X, MAX, SUM) when (X rem 3) == 0 or (X rem 5) == 0 -> multiple(X + 1, MAX, SUM + X); multiple(X, MAX, SUM)-> multiple(X + 1, MAX, SUM).
Lösung 2: der elegante Weg:
multiple2(X) when X=<0 -> 0; multiple2(X) when ((X rem 3 ==0) or (X rem 5==0)) -> X + multiple2(X-1); multiple2(X)-> multiple2(X-1).