Διαδρομές
/
Elm
Elm
/
Ασκήσεις
/
Τα υπέροχα λαζάνια του Mario
Τα υπέροχα λαζάνια του Mario

Τα υπέροχα λαζάνια του Mario

Άσκηση εκμάθησης

Εισαγωγή

Let

Η έκφραση let (έστω) χρησιμοποιείται για να δημιουργεί μια τοπική εμβέλεια και είναι χρήσιμη σε μερικές περιπτώσεις:

  • Για απλοποίηση εκφράσεων
  • Για ονομασία των αποτελεσμάτων ενδιάμεσων εκφράσεων
  • Για διαχωρισμό μιας έκφρασης σε μικρότερα κομμάτια αν μεγαλώνει πολύ

Μπορείς να κάνεις τα περισσότερα πράγματα μέσα σε μια έκφραση let, συμπεριλαμβανομένης της αποδόμησης (περισσότερες λεπτομέρειες σε επόμενες ασκήσεις), αλλά δεν είναι δυνατό να ορίσεις έναν νέο Custom Type ή Type Alias.

let
  cube x = x * x * x
in
  cube a + cube b + cube c
beginWithPattern : Size -> Padding -> Pattern -> GameOfLife
beginWithPattern minimumSize padding pattern =
    let
        size = calculateSize minimumSize padding pattern

        center = Size.center size

        centeredPattern = Pattern.centerAt center pattern

        dimensions = { width = size, height = size }

        deadCells = Matrix.create dimensions Dead
    in
    GameOfLife (bringPatternToLife deadCells centeredPattern)

Οδηγίες

Στα γενέθλιά σου πήρες ένα καινούργιο βιβλίο μαγειρικής και θέλεις να ανακαλύψεις αν η συνταγή για λαζάνια που έχει μέσα είναι καλύτερη από το αγαπημένο σου βιβλίο μαγειρικής. Σε αυτή την άσκηση θα γράψεις κώδικα για να σε βοηθήσει να μαγειρέψεις τα λαζάνια από το καινούργιο βιβλίο μαγειρικής.

Η συγκάτοικός σου είναι ακόμα απασχολημένη στο γραφείο και θέλει να μάθει τι ώρα θα είναι έτοιμα τα λαζάνια, ώστε να βεβαιωθεί ότι θα προλάβει να γυρίσει στην ώρα της.

1. Υπολόγισε τι ώρα θα είναι έτοιμα τα λαζάνια

Δημιούργησε μια συνάρτηση που να υπολογίζει τι ώρα θα είναι έτοιμα τα λαζάνια. Για να είναι ο κώδικας απλός και εκφραστικός, θα πρέπει να χρησιμοποιήσεις μια έκφραση let (έστω).

Όρισε τη συνάρτηση remainingTimeInMinutes που παίρνει δύο παραμέτρους και έχει ως σώμα της μια έκφραση let. Η πρώτη παράμετρος είναι ο αριθμός των στρώσεων στα λαζάνια και η δεύτερη παράμετρος είναι ο αριθμός των λεπτών από τότε που άρχισες να μαγειρεύεις.

Όρισε το expectedMinutesInOven (στο τμήμα let της έκφρασης let) για να ελέγξετε πόσα λεπτά πρέπει να είναι τα λαζάνια στον φούρνο. Σύμφωνα με το βιβλίο μαγειρικής, ο αναμενόμενος χρόνος στον φούρνο, σε λεπτά, είναι 40:

expectedMinutesInOven
    --> 40

Όρισε το preparationTimeInMinutes (στο τμήμα let της έκφρασης let) που παίρνει ως παράμετρο τον αριθμό των στρώσεων στα λαζάνια και επιστρέφει πόσα λεπτά χρειάζονται για την προετοιμασία των λαζανιών, υποθέτοντας ότι κάθε στρώση χρειάζεται 2 λεπτά για να ετοιμαστεί.

preparationTimeInMinutes 3
    --> 6

Επίστρεψε πόσα λεπτά απομένουν μέχρι να είναι έτοιμα τα λαζάνια (στο τμήμα in της έκφρασης let), που είναι το άθροισμα του preparationTimeInMinutes και του expectedMinutesInOven μείον τον αριθμό των λεπτών από τότε που άρχισες να μαγειρεύεις.

remainingTimeInMinutes 3 10
    --> 6 + 40 - 10 = 36
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Elm Exercism

Έτοιμος να ξεκινήσεις την άσκηση Τα υπέροχα λαζάνια του Mario;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Elm με 28 έννοιες110 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.