Page under construction!!

Crazy hyphenation - IN ITALIAN

Considerate il seguente programma crazy_hyphenation.go. Questo programma implementa un nuovo e originale metodo di sillabazione. Il metodo consiste in questo: una sillaba è una sequenza massimale di caratteri consecutivi che rispettano l’ordine alfabetico. Per esempio, la parola ambire viene sillabata come am-bir-e: infatti la lettera a precede la lettera m, e le lettere b, i e r rispettano anch’esse l’ordine alfabetico. Il programma è dotato di una funzione divideIntoSyllables che riceve come parametro una stringa e restituisce le sue sillabe sotto forma di una slice di stringhe. La funzione main legge da riga di comando una parola e stampa le sillabe che la compongono.

package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Println(divideIntoSyllables(os.Args[1]))
}

func divideIntoSyllables(word string) (syllableSlice []string) {

    var prevLetter rune
    var syllable string

    for _, currLetter := range word {

        if currLetter < prevLetter {
            syllableSlice = append(syllableSlice, syllable)
            syllable = string(currLetter)
        } else {
            syllable += string(currLetter)
        }
    prevLetter = currLetter }
    syllableSlice = append(syllableSlice , syllable)
    return
}

Analizzate il codice sorgente e rispondete per iscritto alle domande che seguono.

  1. Il programma attraverso quale canale riceve i dati da elaborare?
  2. E le sillabe da stampare?
  3. La funzione divideIntoSyllables attraverso quale canale riceve i dati da elaborare?
  4. Quanti e di che tipo sono i dati da elaborare che riceve la funzione divideIntoSyllables?