30145Fermer30147
GodzilLe 16/12/2016 à 17:38
Le machin de mozilla?

Moui, apres regardage rapide, ca commence mal:

fn factorial_iterator(n: u32) -> u32
"fn" pour dire qu'on a affaire a une nouvelle fonction (autant mettre fonction non? on est plus a 40col depuis 40 ans)

et le -> pour donne le type de retour est un choix TRES TRES malheureux.

"->" est tres chiant a taper en QWERTY, et a vrai dire le prototype de fonctions classique a la C/C++ marche tres bien, pourquoi forcement vouloir inventer des trucs tout sauf pratique?
Et ça ne rends pas le code concrètement plus lisible, au contraire je trouve.
[...]The branches in this function exhibit Rust's optional implicit return values,[...]
fn factorial_recursive(n: u32) -> u32 {
    if n <= 1 {
        1
    } else {
        n * factorial_recursive(n - 1)
    }
}
Pitié non... Rentre "return" optionel.... sérieusement? Il se sont dit tiens on tape trop de caractères donc on va faire qu'on puisse en taper moins? (comme "let mut" pour dire qu'on déclare une variable qui peux être "mutated" (oui hein écrire parce que "mutated" au complet c'est trop chiant))

Genre je fait appel a la fonction toto qui fait unTruc© et retourne la valeur 42, je fait :

fn factorial_recursive(n: u32) -> u32 {
    if n <= 1 {
        toto()
        1
    } else {
        n * factorial_recursive(n - 1)
    }
}

Ben je me bouffe un 42 a la place de 1? C'est beau hein!

Non désolé, je ne peux pas prendre se langage au sérieux.

(en plus je trouve le choix de "mutated" pour dire "peux etre changé" est relativement horrible)
En plus le typage n'a pas l'air d'etre du typage fort vu qu'on peux definir des variable sans dire explicitement le type, c'est plutot contre-indique poru faire du systeme ca..