Τα προγράμματα Haskell αποτελούνται από ορισμούς και εκφράσεις.
Μια σταθερή τιμή ορίζεται με name = expression.
five = 5
six = 3 + 3
Οι συναρτήσεις ορίζονται με name parameters... = expression, με τις παραμέτρους να χωρίζονται μόνο με κενό.
add number1 number2 = number1 + number2
Η κλήση μιας συνάρτησης είναι επίσης μια έκφραση και γίνεται καθορίζοντας το όνομά της και περνώντας ορίσματα για κάθε παράμετρο της συνάρτησης, χωρισμένα με κενά, ακριβώς όπως στους ορισμούς συναρτήσεων.
five = add 2 3
Οι παρενθέσεις μπορούν να χρησιμοποιηθούν για να καθορίσουν τη σειρά με την οποία αξιολογείται μια έκφραση.
six = add 2 (1 * 4)
twelve = add 2 1 * 4
Η Haskell χρησιμοποιεί κενά και εσοχή για να καθορίσει τα όρια του κώδικα. Ο κώδικας που αποτελεί μέρος κάποιας έκφρασης πρέπει να έχει μεγαλύτερη εσοχή από την αρχή αυτής της έκφρασης.
-- A function split over multiple lines, so subsequent lines must be indented
add number1 number2 =
number1 + number2
https://en.wikibooks.org/wiki/Haskell/Indentation
Τα module εξάγουν συναρτήσεις. Αυτό σημαίνει ότι μπορείς να χρησιμοποιήσεις τις συναρτήσεις που το module κάνει διαθέσιμες στη δήλωση εξαγωγής του. Ένα module μπορεί επίσης να ορίσει συναρτήσεις μόνο για εσωτερική χρήση. Από προεπιλογή, οι συναρτήσεις που δεν εξάγονται ρητά δεν μπορούν να χρησιμοποιηθούν από έξω από το module.
Στην αρχή ενός module, καθορίζουμε το όνομα του module. Αν έχουμε ένα αρχείο με όνομα Calculator.hs, τότε πρέπει να ονομάσουμε το module μας Calculator. Έπειτα, καθορίζουμε τις συναρτήσεις που εξάγει και μετά από αυτό, μπορούμε να αρχίσουμε να γράφουμε τις συναρτήσεις. Οπότε θα ξεκινήσουμε με αυτό.
module Calculator ( add ) where
https://learnyouahaskell.github.io/modules#making-our-own-modules
Ένα σχόλιο είναι κάποιο κείμενο μέσα στο αρχείο Haskell που δεν ερμηνεύεται ως κώδικας.
Προορίζεται κυρίως για να το διαβάζεις εσύ και άλλοι προγραμματιστές.
Υπάρχει μια απλή σύνταξη για σχόλια μίας γραμμής, βασισμένη στις διπλές παύλες.
Σχόλια πολλαπλών γραμμών είναι επίσης δυνατά με το ζεύγος {- και -} ως οριοθέτες ανοίγματος και κλεισίματος.
-- a single line comment
-- another single line comment
{- a multiline comment
spanning multiple lines
-}
Αυτή η εισαγωγή άσκησης δανείζεται εκτενώς από το Learn You a Haskell for Great Good!, υπό την Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License
Σε αυτή την άσκηση θα γράψεις λίγο κώδικα για να σε βοηθήσει να μαγειρέψεις υπέροχα λαζάνια από το αγαπημένο σου βιβλίο μαγειρικής.
Έχεις τρεις εργασίες, όλες σχετικές με τον χρόνο που περνάς μαγειρεύοντας τα λαζάνια.
Όρισε τη σταθερά expectedMinutesInOven για να ελέγξεις πόσα λεπτά πρέπει να είναι τα λαζάνια στον φούρνο. Σύμφωνα με το βιβλίο μαγειρικής, ο αναμενόμενος χρόνος στο φούρνο σε λεπτά είναι 40:
expectedMinutesInOven
--> 40
Όρισε τη συνάρτηση preparationTimeInMinutes που παίρνει ως παράμετρο τον αριθμό των στρώσεων που πρόσθεσες στα λαζάνια και επιστρέφει πόσα λεπτά χρειάστηκες για να προετοιμάσεις τα λαζάνια, υποθέτοντας ότι κάθε στρώση σου παίρνει 2 λεπτά για προετοιμασία.
preparationTimeInMinutes 3
--> 6
Όρισε τη συνάρτηση elapsedTimeInMinutes που παίρνει δύο παραμέτρους: η πρώτη παράμετρος είναι ο αριθμός των στρώσεων που πρόσθεσες στα λαζάνια, και η δεύτερη παράμετρος είναι ο αριθμός των λεπτών που τα λαζάνια βρίσκονται στον φούρνο. Η συνάρτηση πρέπει να επιστρέφει πόσα λεπτά έχεις αφιερώσει στο μαγείρεμα των λαζανιών, που είναι το άθροισμα του χρόνου προετοιμασίας σε λεπτά και του χρόνου σε λεπτά που τα λαζάνια έχουν περάσει στον φούρνο αυτή τη στιγμή.
elapsedTimeInMinutes 3 20
--> 26
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Haskell με 107 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.