Mostofreddy

Tutorial Erlang III: Integers, floats, booleans, atoms

Comentarios 0 Tags Categorias Programacion

{lang: 'es-419'}

Retomando el tutorial de Erlang hoy trataré de explicar algunos tipos de datos de este lenguaje, veremos como Erlang maneja los enteros, floats y booleanos. Manos a la obra!

Integers

Este tipo de dato se utiliza para todo el conjunto de numeros enteros sin importar su tamaño. Pueden ser negativos o positivos y estar expresados en distintas bases.

No posee una cantida de bits fija ni un rango específico de valores como en otros lenguajes, por lo tanto, podemos escribir números con la cantidad de cifras que querramos y operar entre ellas sin provocar overflow.

Esto se debe a que Erlang internamente, cuando un entero no se puede representar en una palabra, utiliza lo que se conoce como bignums, representando al entero en un número  arbitrario de palabras haciendo su representación un poco menos eficiente. El único límite para el largo de los integers depende de la maquina.

Ejemplos

-4560
0
666
999999999999999

Ejemplos 2 con números en otra base

> 2#1011.
> 11
> 16#A
>10

Floats

Los tipos de datos Floats son usados para representar números Reales.

Ejemplos

> 1.02.
1.02
> 5698.12.
5698.12

Atoms

Los datos del tipo atoms son usados para representar valores constantes no-numéricos. En Erlang todos los Atoms son globales, comienzan con letra en minúsculas seguidos por una secuenca de carácteres alfanumericos, caracter underscore (_) o arrobas (@). Por ejemplo: junio, true, taza, mimail@dominio.com, etc.

Los Atoms también pueden estar delimitados por comillas simples cuando contienen caracteres no validos como espacios o que comiencen con mayúsculas. Por ejemplo ‘Diciembre’, ‘hoy es un lindo dia’, etc.

Algo a tener en cuenta es que las únicas operaciones que se pueden realizar con los Atoms en Erlang son las comparaciones.

Booleans

En Erlang no existen en si los tipos de datos booleanos, sino que son representados mediente los Atoms true y false. Estos son los valores que devuelven por ejemplo las comparaciones

1> 2 == 1 .
false
2> a > z .
false
3> less > more .
false
4> is_boolean(true) .
true

Existen otros tipos de datos como las tuplas, listas o strings pero lo veremos en más detalle en otro post.

Tutorial Erlang II: Comenzando con Erlang

Comentarios 4 Tags Categorias Programacion

{lang: 'es-419'}

Instalacón

Lo primero que debemos hacer es instalar los paquetes correspondientes.

En Debian y todos los OS basados en el como Ubuntu, tenemos los paquetes en los repositorios y los instalamos de la siguiente manera.


sudo apt-get build-dep erlang

Otras librerías que quizas necesitemos son:


sudo apt-get install libssl-dev
sudo apt-get install m4
sudo apt-get install libncurses5-dev

Shell de Erlang

Erlang dispone de una Shell con la cual podemos escribir nuestro codigo y el nos devolvera el resultado. Para abrirla nos dirigimos a una terminal y tecleamos


erl

Nos aparecerá lo siguiente

shell Erlang

Vamos a probarla. Hagamos una suma aritmetica, por ejemplo 100 + 50


1> 100 + 50 .

150

Como vemos, poniendo directamente la suma (NO olvidar el punto final) nos devolverá el resultado

Hello World! en Erlang

Ahora trataremos de crear el famoso Hello Worl típico cuando arrancamos con un nuevo lenguaje. Para ello crearemos un fichero aparte (mas adelante los veremos bien) donde pondremos una función que imprima el resultado en pantalla

Creamos el archivo llamado hello.erl y poner lo siguiente


-module(hello).
 -export([start/0]).

 start() -> io:fwrite("Hola Mundo!\n") .

Nota: el nombre del archivo debe ser igual que el nombre del módulo.

Luego desde una consola (situados en el mismo directorio donde se creo el archivo) abrimos el shell de erlang, compilamos y corremos  el programa


$ erl
Erlang R13B03 (erts-5.7.4) 1 [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7.4  (abort with ^G)
1> c(hello).
{ok,hello}
2> hello:start().
Hola Mundo!
ok
3>

Listo, todo por hoy

Tutorial Erlang I: Instroducción

Comentarios 0 Tags Categorias Programacion

{lang: 'es-419'}

erlang

Desde hace tiempo que quería comenzar a programar en Erlang, y hoy comence :)

Erlang es un lenguaje de programación concurrente. Fue creado por los laboratorios de Ericsson allá por 1986 para mejorar las aplicaciones de telefonía.

Características

  • Lenguaje funcional
  • Concurrente
  • Distribuido (no hay memoria compartida)
  • Tolerante a fallos
  • reemplazo de código en caliente
  • procesos concurrentes independientes
  • envío de mensajes para la comunicación entre procesos
  • tipos de datos dinamica
  • posibilita la comunicación con otros lenguajes como C, Java, etc
  • Todo es un proceso
  • Los procesos tienen un nombre único
  • Influenciado por Prolog

Empezare una pequeña guía donde plasmare las distintas experiencias que voy teniendo con el lenguaje

Indice

Top five: Razones para elegir CouchDB

Comentarios 0 Tags , , Categorias Base de Datos

{lang: 'es-419'}

En el sitio nosql, publicaron este top 5 de las razones de porque usar CouchDB

  • CouchDB Stores Data in Documents – CouchDB manages data in the form of JSON documents.
  • Data is Unique and Never Overwritten - when a piece of data is written to a CouchDB document, it will have completely unique identification and will never be overwritten.
  • CouchDB Makes Replication Easy and Efficient – CouchDB databases can replicate from one to another, in a sort of “Master-Master” configuration.  This way, any CouchDB database can accept data as well as replicate that data to any other CouchDB database quickly.
  • Interact With CouchDB Over HTTP Using RESTful – the protocol of CouchDB is RESTful over HTTP.
  • CouchDB Has Own Webserver – Anyone who has messed around with an LAMP system knows that Apache can hog a ton of memory.  Since CouchDB uses has it’s own webserver, you can save a lot of memory by avoiding Apache all together.

Presentaciones sobre CouchDB

Comentarios 0 Tags , Categorias Base de Datos

{lang: 'es-419'}