Monday, December 05, 2016

Mi primer post en Rust

Nuevamente...estoy aprendiendo un nuevo lenguaje de programación...y esta vez le tocó el turno a Rust.


Rust es muy bueno y tiene características muy interesántes como ownership y borrowing...y la sintáxis me recuerda bastante a OCaml...lo cual me gusta bastante...

Por ahora estoy leyendo la documentación oficial, que está realmente muy bien hecha...así que por supuesto hice mi aplicación de números fibonacci...

fibonacci.rs
use std::io;

fn fib(num: i64, a: i64, b:i64) -> String{
 let mut result: String = "".to_string();
 let sum: i64 = a + b;
 let sum_str: &str = &sum.to_string();
 let a_str: &str = &a.to_string();
 let b_str: &str = &b.to_string();
 if a > 0 && num > 1 {
  result = result + sum_str + " " + &fib((num - 1), (a + b), a);
 }else if a == 0{
  result = "".to_string() + a_str + " " + b_str + " " + 
           sum_str + " " + &fib((num - 1), (a + b), b); 
 }
 result
}

fn main(){
 println!("Enter a number : ");
 let mut input_num = String::new();
 io::stdin().read_line(&mut input_num)
            .expect("failed to read");

 let trimmed = input_num.trim();
    match trimmed.parse::() {
        Ok(i) => { let result: String = fib(i, 0, 1); print!("{}", result);}
        Err(..) => println!("Please enter an interger, not {}", trimmed)
    };
}

El código es un poco extenso para mi gusto...pero puede ser simplemente porque no he aprendido lo suficiente de Rust...o porque su sistema de ownership/borrowing sacrifica longitud para agregar seguridad...lo cual es algo realmente muy bueno...

Aquí está el resultado



Por supuesto, mi aplicación de Números LED ya está lista...y está viniendo justo después de este post -;)

Saludos,

Blag.
Development Culture.

No comments: