Στη Gleam οι συναρτήσεις ορίζονται με τη σύνταξη pub fn.
pub fn add(x: Int, y: Int) -> Int {
x + y
}
Αυτή η συνάρτηση δέχεται δύο ορίσματα, και τα δύο τύπου Int, και επιστρέφει μια τιμή τύπου Int. Δεν υπάρχει λέξη-κλειδί return στη Gleam: η τιμή της τελευταίας έκφρασης σε μια συνάρτηση επιστρέφεται πάντα σιωπηρά.
Οι δηλώσεις τύπων για τα ορίσματα και ο τύπος επιστροφής είναι προαιρετικές, και η Gleam θα ελέγχει πάντα πλήρως τους τύπους του κώδικά σου. Συνήθως οι προγραμματιστές της Gleam δίνουν δηλώσεις τύπων στις συναρτήσεις τους για σαφήνεια, αλλά μπορείς να τις παραλείψεις αν θέλεις.
pub fn add(x, y) {
x + y
}
Μπορείς να καλέσεις μια συνάρτηση χρησιμοποιώντας τη σύνταξη function_name(argument1, argument2).
pub fn double(x: Int) -> Int {
// Call the add function defined above
add(x, x)
}
Στη Gleam οι μεταβλητές ορίζονται με τη σύνταξη let name = expression.
pub fn main() {
let count = 1
}
Οι μεταβλητές μπορούν να δηλωθούν με δηλώσεις τύπων. Όπως και στα ορίσματα συναρτήσεων, αυτές είναι προαιρετικές, αν και οι περισσότεροι προγραμματιστές της Gleam παραλείπουν τις δηλώσεις τύπων για τις μεταβλητές για λόγους συντομίας.
pub fn main() {
let count: Int = 1
}
Στη Gleam οι συμβολοσειρές γράφονται με διπλά εισαγωγικά.
pub fn greeting() {
"Hello, world!"
}
Τα σχόλια μπορούν να χρησιμοποιηθούν για να αφήσεις σημειώσεις σε άλλους προγραμματιστές που διαβάζουν τον πηγαίο κώδικα. Τα σχόλια στη Gleam είναι μεμονωμένες γραμμές που ξεκινούν με //.
pub fn main() {
// This is a comment
let x = 1
}
Σε αυτή την άσκηση θα γράψεις κώδικα για να σε βοηθήσει να μαγειρέψεις μια υπέροχη λαζάνια από το αγαπημένο σου βιβλίο μαγειρικής.
Έχεις πέντε εργασίες, όλες σχετικές με τον χρόνο που περνάει η λαζάνια στο μαγείρεμα.
Όρισε τη συνάρτηση expected_minutes_in_oven που δε δέχεται κανένα όρισμα και επιστρέφει πόσα λεπτά πρέπει να μείνει η λαζάνια στον φούρνο. Σύμφωνα με το βιβλίο μαγειρικής, ο αναμενόμενος χρόνος στον φούρνο σε λεπτά είναι 40:
expected_minutes_in_oven()
// -> 40
Όρισε τη συνάρτηση remaining_minutes_in_oven που δέχεται ως όρισμα τα πραγματικά λεπτά που βρίσκεται η λαζάνια στον φούρνο και επιστρέφει πόσα λεπτά πρέπει ακόμη να μείνει η λαζάνια στον φούρνο, με βάση τον αναμενόμενο χρόνο σε λεπτά της προηγούμενης εργασίας.
remaining_minutes_in_oven(30)
// -> 10
Όρισε τη συνάρτηση preparation_time_in_minutes που δέχεται ως όρισμα τον αριθμό των στρώσεων που πρόσθεσες στη λαζάνια και επιστρέφει πόσα λεπτά χρειάστηκες για να προετοιμάσεις τη λαζάνια, υποθέτοντας ότι κάθε στρώση σου παίρνει 2 λεπτά.
preparation_time_in_minutes(2)
// -> 4
Όρισε τη συνάρτηση total_time_in_minutes που δέχεται δύο ορίσματα: το πρώτο όρισμα είναι ο αριθμός των στρώσεων που πρόσθεσες στη λαζάνια και το δεύτερο είναι ο αριθμός των λεπτών που βρίσκεται η λαζάνια στον φούρνο. Η συνάρτηση πρέπει να επιστρέφει πόσα λεπτά έχεις δουλέψει συνολικά για το μαγείρεμα της λαζάνιας, δηλαδή το άθροισμα του χρόνου προετοιμασίας σε λεπτά και του χρόνου που έχει περάσει η λαζάνια στον φούρνο μέχρι στιγμής.
total_time_in_minutes(3, 10)
// -> 16
Όρισε τη συνάρτηση alarm που δε δέχεται κανένα όρισμα και επιστρέφει ένα μήνυμα που δηλώνει ότι η λαζάνια είναι έτοιμη να τη φας.
alarm()
// -> "Ding!"
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Gleam με 33 έννοιες122 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.