Tracks
/
Elm
Elm
/
Übungen
/
Lucians köstliche Lasagne
Lucians köstliche Lasagne

Lucians köstliche Lasagne

Lernübung

Einführung

Grundlagen 1

Konstanten und Funktionen

Ein konstanter Wert wird mit name = expression definiert. In Elm ist nämlich alles außer Definitionen ein Ausdruck.

five = 5

six = 3 + 3

Funktionen werden mit name parameters... = expression definiert, wobei die Parameter nur durch Leerzeichen getrennt werden.

add number1 number2 = number1 + number2

Der Aufruf einer Funktion ist ebenfalls ein Ausdruck. Du gibst dabei ihren Namen an und übergibst für jeden Parameter der Funktion ein Argument, getrennt durch Leerzeichen, genau wie bei der Definition der Funktion.

five = add 2 3

Mit runden Klammern kannst du die Reihenfolge festlegen, in der ein Ausdruck ausgewertet wird.

six = add 2 (1 * 4)

twelve = add 2 1 * 4

Einrückung / bedeutungstragender Leerraum

Elm verwendet keine syntaktischen Markierungen wie geschweifte Klammern, runde Klammern oder Semikolons, um Codegrenzen festzulegen. Stattdessen nutzt es Leerzeichen und Einrückungen.

  • Definitionen von Modulen, Imports und Funktionen auf oberster Ebene müssen ganz links in der Zeile beginnen.
  • Wenn ein Ausdruck auf mehrere Zeilen aufgeteilt wird, muss der Code, der zu diesem Ausdruck gehört, unter dem Ausdruck mit mindestens einem Leerzeichen eingerückt werden.
  • Teile des Ausdrucks, die zusammengehören, sollten mit der gleichen Anzahl an Leerzeichen eingerückt werden.
-- A function split over multiple lines, so subsequent lines must be indented
add number1 number2 =
    number1 + number2

https://elmprogramming.com/indentation.html

Module

Jede Datei in Elm ist ein Modul und muss vor dem restlichen Code eine module-Anweisung enthalten. Modulnamen müssen zu ihrem Dateinamen passen, das Modul Calculator muss also in der Datei Calculator.elm liegen. Alles, was innerhalb eines Moduls definiert wird, ist privat auf dieses Modul beschränkt und kann von außerhalb dieses Moduls nicht erreicht werden, es sei denn, es wird in exposing aufgeführt.

-- Define the Calculator module, and expose the `add` function
module Calculator exposing (add)

six = 3 + 3

add number1 number2 = number1 + number2
-- Define the Calculator module, and expose everything within: `six` and `add`
module Calculator exposing (..)

six = 3 + 3

add number1 number2 = number1 + number2

https://elm-lang.org/docs/syntax#modules

Kommentare

Ein Kommentar ist ein Text innerhalb der Elm-Datei, der nicht als Code interpretiert wird. Er ist vor allem für dich und andere Programmierer zum Lesen gedacht. Für einzeilige Kommentare gibt es eine einfache Syntax mit doppelten Bindestrichen. Mehrzeilige Kommentare sind ebenfalls möglich, mit dem Paar {- und -} als öffnendem und schließendem Begrenzer.

-- a single line comment
-- another single line comment

{- a multiline comment
   spawning multiple lines
-}

Formatierung

Es gibt einen Style Guide, und mit elm-format kannst du Code automatisch formatieren.

Anleitung

In dieser Übung schreibst du etwas Code, der dir hilft, eine großartige Lasagne aus deinem Lieblingskochbuch zu kochen.

Du hast drei Aufgaben, die alle mit der Zeit zu tun haben, die du für die Zubereitung der Lasagne brauchst.

1. Definiere die erwartete Backzeit in Minuten

Definiere expectedMinutesInOven, um zu berechnen, wie viele Minuten die Lasagne im Ofen bleiben sollte. Laut Kochbuch beträgt die erwartete Backzeit 40 Minuten:

expectedMinutesInOven
    --> 40

2. Berechne die Vorbereitungszeit in Minuten

Definiere preparationTimeInMinutes. Die Funktion nimmt die Anzahl der Schichten der Lasagne als Parameter und gibt zurück, wie viele Minuten die Vorbereitung der Lasagne dauert. Dabei gehst du davon aus, dass jede Schicht 2 Minuten zum Vorbereiten braucht.

preparationTimeInMinutes 3
    --> 6

3. Berechne die verstrichene Zeit in Minuten

Definiere die Funktion elapsedTimeInMinutes, die zwei Parameter nimmt: Der erste Parameter ist die Anzahl der Schichten der Lasagne und der zweite Parameter die Anzahl der Minuten, die die Lasagne schon im Ofen war. Die Funktion soll zurückgeben, wie viele Minuten du mit der Zubereitung der Lasagne verbracht hast. Das ist die Summe aus der Vorbereitungszeit in Minuten und der Zeit in Minuten, die die Lasagne bis jetzt im Ofen verbracht hat.

elapsedTimeInMinutes 3 20
    --> 26
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Elm Exercism

Bereit, mit Lucians köstliche Lasagne zu starten?

Melde dich bei Exercism an, um Elm mit 28 Konzepte110 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.