Ο τελεστής |> ονομάζεται τελεστής σωλήνωσης. Μπορεί να χρησιμοποιηθεί για να συνδέσει αλυσιδωτά κλήσεις συναρτήσεων, με τέτοιο τρόπο ώστε η τιμή που επιστρέφει η προηγούμενη κλήση συνάρτησης να περνά στην επόμενη κλήση συνάρτησης.
"hello"
|> string.uppercase
|> string.append("?!")
// -> "HELLO?!"
Ο παραπάνω κώδικας είναι ισοδύναμος με τον παρακάτω:
string.append(string.uppercase("hello"), "?!")
Ο τελεστής σωλήνωσης θα περάσει την τιμή είτε ως πρώτο όρισμα στην κλήση συνάρτησης είτε ως μοναδικό όρισμα σε μια νέα κλήση, επιλέγοντας όποια περίπτωση θα είχε τον σωστό τύπο.
100
|> function_that_takes_two_arguments(1)
// Is equivalent to
function_that_takes_two_arguments(100, 1)
100
|> function_that_returns_a_function(1)
// Is equivalent to
function_that_returns_a_function(1)(100)
Μερικές φορές θέλουμε να περάσουμε την τιμή σε άλλη θέση. Σε αυτή την περίπτωση, το σύμβολο υποκατάστασης _ μπορεί να χρησιμοποιηθεί για να δείξει πού πρέπει να εισαχθεί η τιμή.
100
|> some_function(1, _, 2)
Σε αυτή την άσκηση, θα βοηθήσεις ερωτευμένους μαθητές λυκείου να δηλώσουν τον έρωτά τους στα μέσα κοινωνικής δικτύωσης, δημιουργώντας μια καρδιά ASCII με τα αρχικά τους:
****** ******
** ** ** **
** ** ** **
** * **
** **
** J. K. + M. B. **
** **
** **
** **
** **
** **
** **
***
*
Υλοποίησε τη συνάρτηση first_letter. Θα πρέπει να παίρνει ένα όνομα και να επιστρέφει το πρώτο γράμμα του. Θα πρέπει να καθαρίζει και τυχόν περιττά κενά από το όνομα.
first_letter("Jane")
// -> "J"
Υλοποίησε τη συνάρτηση initial. Θα πρέπει να παίρνει ένα όνομα και να επιστρέφει το πρώτο γράμμα του, κεφαλαίο, ακολουθούμενο από τελεία. Φρόντισε να επαναχρησιμοποιήσεις τη first_letter που όρισες στο προηγούμενο βήμα.
initial("Robert")
// -> "R."
Υλοποίησε τη συνάρτηση initials. Θα πρέπει να παίρνει ένα πλήρες όνομα, που αποτελείται από ένα όνομα και ένα επώνυμο χωρισμένα με ένα κενό, και να επιστρέφει τα αρχικά. Φρόντισε να επαναχρησιμοποιήσεις τη initial που όρισες στο προηγούμενο βήμα.
initials("Lance Green")
// -> "L. G."
Υλοποίησε τη συνάρτηση pair. Θα πρέπει να παίρνει δύο πλήρη ονόματα και να επιστρέφει τα αρχικά μέσα σε μια καρδιά ASCII. Φρόντισε να επαναχρησιμοποιήσεις τη initials που όρισες στο προηγούμενο βήμα.
pair("Blake Miller", "Riley Lewis")
// -> "
// ****** ******
// ** ** ** **
// ** ** ** **
// ** * **
// ** **
// ** B. M. + R. L. **
// ** **
// ** **
// ** **
// ** **
// ** **
// ** **
// ***
// *
// "
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Gleam με 33 έννοιες122 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.