En el anterior post sobre lenguajes que deberías conocer se habló sobre lenguajes como Concurnas, Lua, Haxe, etc.
Muchas veces, sobre todo para programadores novatos, encontrar un lenguaje favorito no es cosa sencilla de hacer. Existen miles de lenguajes de programación que prometen ser el ideal. En esta ocasión vamos a ver algunos ejemplos escritos en esos lenguajes.
Luaoperaciones.lua
print("Suma de 3 + 5 =",(3+5)) print("Resta de 23 - 20 =",(23-20)) booleanas = true print("Booleano:",booleanas) booleanas = true and true print("Booleano true and true:",booleanas) booleanas = true or true print("Booleano true or true:",booleanas) booleanas = false or true print("Booleano false or true:",booleanas) booleanas = true or false print("Booleano true or false:",booleanas) booleanas = true and false print("Booleano true and false:",booleanas) booleanas = true and false or true print("Booleano true and false or true:",booleanas) booleanas = not booleanas print("Booleano not booleanas:",booleanas) x = 55 if(x > 56) then print("Mayor a 56:",x); end if(x > 45) then print("Mayor a 45:",x) else print("Menor a 45:",x) end if(x > 344) then print("Mayor a 344:",x) elseif(x > 211) then print("Mayor a 211:",x) else print("X:",x) end MAX = 10 local cont = MAX while cont > 0 do print("Contador = ",cont) cont = cont - 1 end print("===================================") local cont = 0 while cont < MAX do print("Contador = ",cont) cont = cont + 1 end
Para ejecutar:
$ lua operaciones.lua
OCaml
operaciones.ml
(* operaciones básicas *) let a = 120;; let b = 100;; let impr_entero_a = Printf.sprintf "a: %d\n" a;; let impr_entero_b = Printf.sprintf "b: %d\n" b;; (* imprimimos números *) print_string "*** Operaciones ****\n";; print_string impr_entero_a ;; print_string impr_entero_b ;; (* imprime dos números *) let impr_dos_enteros = Printf.sprintf "a= %d y b= %d\n" a b;; print_string impr_dos_enteros;; (* suma *) let suma = a + b;; let impr_suma = Printf.sprintf "Suma: %d\n" suma;; print_string impr_suma;; (* resta *) let resta = a - b;; let impr_resta = Printf.sprintf "Resta: %d\n" resta;; print_string impr_resta;; (* producto *) let mult = a * b;; let impr_mult = Printf.sprintf "Producto: %d\n" mult;; print_string impr_mult;; (* división *) let divide = a / b;; let impr_divide = Printf.sprintf "Division: %d\n" divide;; print_string impr_divide;; (* residuo *) let residuo = a mod b;; let impr_residuo = Printf.sprintf "Residuo: %d\n" residuo;; print_string impr_residuo;; (* operaciones booleanas *) let verdadero = a > b;; let impr_boolean = Printf.sprintf "La sentencia 120 > 100 es: %b\n" verdadero;; print_string impr_boolean;;(* true *) let verdadero = a < b;; let impr_boolean = Printf.sprintf "La sentencia 120 < 100 es: %b\n" verdadero;; print_string impr_boolean;;(* false *) let verdadero = a != b;; let impr_boolean = Printf.sprintf "La sentencia 120 != 100 es: %b\n" verdadero;; print_string impr_boolean;;(* true *) let verdadero = a > b && a!=b ;; let impr_boolean = Printf.sprintf "La sentencia 120 > 100 && 120 != 100 es: %b\n" verdadero;; print_string impr_boolean;;(* true *) let verdadero = a < b && a!=b ;; let impr_boolean = Printf.sprintf "La sentencia 120 > 100 && 120 != 100 es: %b\n" verdadero;; print_string impr_boolean;;(* false *) let verdadero = a < b || a!=b ;; let impr_boolean = Printf.sprintf "La sentencia 120 > 100 || 120 != 100 es: %b\n" verdadero;; print_string impr_boolean;;(* true *) let verdadero = a < b || a=b ;; let impr_boolean = Printf.sprintf "La sentencia 120 < 100 || 120 = 100 es: %b\n" verdadero;; print_string impr_boolean;;(* false *) let verdadero = not (a < b || a=b) ;; let impr_boolean = Printf.sprintf "La sentencia not (120 < 100 || 120 = 100) es: %b\n" verdadero;; print_string impr_boolean;;(* true *) let verdadero = not true ;; let impr_boolean = Printf.sprintf "La sentencia not (true) es: %b\n" verdadero;; print_string impr_boolean;;(* false *)
Para ejecutar:
$ ocaml operaciones.ml
Dart
operaciones.dart
class X{} class Y extends X{} abstract class A{ mensaje(); } class B extends A{ mensaje(){ print("Este es un mensaje deade clase B"); } } class C implements A{ mensaje(){ print("Este es eun aviso desde C"); } } class D extends C{} void main(){ var my_x = X(); X my_x2 = new X(); var my_y = new Y(); Y my_y2 = Y(); var my_b = B(); var my_c = new C(); var my_d = D(); print("${my_b}"); print("${my_c}"); print("${my_d}"); if(my_x is X){ print('${my_x} es de tipo X'); } if(my_x2 is X){ print('${my_x2} es de tipo X'); } if(my_y is Y){ print('${my_y} es de tipo Y'); } if(my_y2 is Y){ print('${my_y2} es de tipo Y'); } int numero = 33; double clave = 137.0; String plumber = "Plumber"; bool cierto = true; var datoVariable = null; print('Numero: ${numero}'); print('Operacion: ${clave*3}'); print('Asignacion: ${plumber}'); print('Una variable: ${datoVariable==null?'Nulo':'No nulo'}'); if(cierto){ print('La tercera columna ha sido abierta!!'); } if(!cierto){ print('X'); }else if(33>11){ print('Y'); } if("X" == "x"){ print("A"); }else{ print("B"); } switch(numero){ case 11: print("11");break; case 22: print("11");break; case 33: print("33");break; default: print("Default");break; } var a= 9; var b = 30; var c = 5; var menor = c; print("a = ${a}"); print("b = ${b}"); print("c = ${c}"); if(a < menor){ menor = a; } if(b < menor){ menor = b; } if(c < menor){ menor = c; } print("Menor = ${menor}"); }
Para ejecutar:
$ dart compile exe operaciones.dart $ ./operaciones.exe
/** * rustc --version * rustc operaciones.rs * ./operaciones */ fn main(){ let numero = 33; let cadena = "El gato de las estrellas."; let mut verdadero:bool = false; let a:i32 = 33; let b:i32 = 54; let mut mayor:i32 = 0; let flotante:f32 = 8.6; let flotante_two:f64 = 8.6; let mut resultado = ""; let str_titulo: String = "Hola Rust Lang!".into(); let codigo = "X"; let mut contador = 10; println!("Entero = {}",numero); println!("Cadena = {}",cadena); println!("Resultado = {}",resultado); println!("Titulo = {}",str_titulo); if verdadero { println!("X"); }else{ println!("Y"); resultado = "FCA"; } println!("Resultado = {}",resultado); verdadero = true; if verdadero { println!("Z"); } if a > b{ mayor = a; }else { if b > a{ mayor = b; } } println!("Mayor = {}",mayor); println!("Flotante[32 bits] = {}, Triple = {}",flotante,flotante*3.0); println!("Flotante[64 bits] = {}, Triple = {}",flotante_two,flotante_two*3.0); if true{ if !true{ println!("No entro"); }else{ println!("A"); if !true{ println!("No entro"); }else if true{ println!("B"); if 4 > 2 || 6 < 9{ println!("C"); } }else{ println!("No entro"); } } } let entrada = match codigo{ "A" => {println!("Aqui no"); "Aqui no"}, "B" => "Aqui tampoco", "C" => "Aqui menos", _ => "La entrada es por la puerta de frente!" }; println!("Salida: {}",entrada); while contador > 0{ contador-=1; println!("contador {}",contador); } println!("============================="); while contador < 10{ contador+=1; println!("contador {}",contador); } contador = 0; println!("============================="); loop{ contador+=1; println!("contador {}",contador); if contador == 5{ break; } } let flotante_str: f32 = "12.0".parse().unwrap(); println!("De cadena a flotante {}",flotante_str); }
Para ejecutar:
$ rustc operaciones.rs $ ./operaciones
Existen lenguajes extraños como ArnoldC basado en la película Terminator. Muchos más se pueden ver http://www.rosettacode.org/wiki/Rosetta_Code.
En próximos post veremos otros leguajes.
Enlaces:
https://ceylon-lang.org
https://lhartikk.github.io/ArnoldC/
https://concurnas.com
https://codemonkeyjunior.blogspot.com/2020/08/un-lenguaje-de-programacion-lamado.html
http://alquimistadecodigo.blogspot.com/2021/04/un-vistazo-ocaml.html
Comentarios
Publicar un comentario