Tracks
/
Gleam
Gleam
/
Übungen
/
Highschool-Liebe
Highschool-Liebe

Highschool-Liebe

Lernübung

Einführung

Der Pipe-Operator

Der Operator |> heißt Pipe-Operator. Mit ihm kannst du Funktionsaufrufe so aneinanderreihen, dass der Rückgabewert des vorherigen Aufrufs an den nächsten Aufruf übergeben wird.

"hello"
|> string.uppercase
|> string.append("?!")
// -> "HELLO?!"

Der Code oben ist äquivalent zu folgendem:

string.append(string.uppercase("hello"), "?!")

Der Pipe-Operator übergibt den Wert entweder als erstes Argument an den Funktionsaufruf oder als einziges Argument an einen neuen Aufruf, je nachdem, welche Variante den passenden Typ ergibt.

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)

Manchmal möchten wir den Wert an einer anderen Position einsetzen. In diesem Fall kannst du den Platzhalter _ verwenden, um anzugeben, wo der Wert eingefügt werden soll.

100
|> some_function(1, _, 2)

Anleitung

In dieser Übung hilfst du Highschool-Liebespaaren, ihre Liebe in sozialen Medien zu bekunden, indem du ein ASCII-Herz mit ihren Initialen erzeugst:

     ******       ******
   **      **   **      **
 **         ** **         **
**            *            **
**                         **
**     J. K.  +  M. B.     **
 **                       **
   **                   **
     **               **
       **           **
         **       **
           **   **
             ***
              *

1. Ermittle den ersten Buchstaben des Namens

Implementiere die Funktion first_letter. Sie soll einen Namen entgegennehmen und dessen ersten Buchstaben zurückgeben. Sie soll überflüssige Leerzeichen aus dem Namen entfernen.

first_letter("Jane")
// -> "J"

2. Formatiere den ersten Buchstaben als Initiale

Implementiere die Funktion initial. Sie soll einen Namen entgegennehmen und dessen ersten Buchstaben in Großbuchstaben zurückgeben, gefolgt von einem Punkt. Stelle sicher, dass du first_letter aus dem vorherigen Schritt wiederverwendest.

initial("Robert")
// -> "R."

3. Teile den vollständigen Namen in Vornamen und Nachnamen auf

Implementiere die Funktion initials. Sie soll einen vollständigen Namen entgegennehmen, der aus einem Vornamen und einem Nachnamen besteht, die durch ein Leerzeichen getrennt sind, und die Initialen zurückgeben. Stelle sicher, dass du initial aus dem vorherigen Schritt wiederverwendest.

initials("Lance Green")
// -> "L. G."

4. Setze die Initialen in das Herz ein

Implementiere die Funktion pair. Sie soll zwei vollständige Namen entgegennehmen und die Initialen in einem ASCII-Herz zurückgeben. Stelle sicher, dass du initials aus dem vorherigen Schritt wiederverwendest.

pair("Blake Miller", "Riley Lewis")
// -> "
//      ******       ******
//    **      **   **      **
//  **         ** **         **
// **            *            **
// **                         **
// **     B. M.  +  R. L.     **
//  **                       **
//    **                   **
//      **               **
//        **           **
//          **       **
//            **   **
//              ***
//               *
// "
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Gleam Exercism

Bereit, mit Highschool-Liebe zu starten?

Melde dich bei Exercism an, um Gleam mit 33 Konzepte122 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.