Este documento presenta información sobre Erlang/OTP. Introduce al autor y su experiencia con varios lenguajes de programación. Explica brevemente qué es Yuilop y cómo evolucionó su arquitectura para admitir millones de usuarios concurrentes, pasando de C++ y PHP a Erlang debido a su capacidad de escalabilidad. También resume las características clave de Erlang como lenguaje funcional orientado a la concurrencia, su sintaxis y comportamientos como OTP.
Chicago boss - Altenwald - Betabeers X CórdobaManuel Rubio
Este documento presenta a Manuel Ángel Rubio Jiménez, un programador y administrador de sistemas con más de 20 años de experiencia. Explica brevemente lo que es Erlang, incluyendo su historia, características y usuarios notables. También describe conceptos clave como el modelo actor, OTP, patrones de diseño comunes en Erlang como gen_server y gen_fsm, y el framework web ChicagoBoss basado en Erlang.
Erlang/OTP - V Taller de Programación FuncionalManuel Rubio
Charla dada en el marco del IV Congreso Español de Informática (CEDI) en la Universidad Complutense de Madrid, en las jornadas organizadas por PROLE para su V Taller de Programación Funcional.
Erlang/OTP - Altenwald - CodeMotion Madrid 2013Manuel Rubio
Erlang/OTP: Un Mundo Concurrente, charla dada el 19 de octubre de 2013 a las 15:15h en el Track Programming de CodeMotion 2013 de Madrid. La charla hace un repaso de la base del Lenguaje Erlang, el framework OTP y las ventajas que ofrece su plataforma.
http://altenwald.org/2013/10/21/codemotion-2013/
Manejando Millones de Usuarios Concurrentes con Erlang/OTPManuel Rubio
Este documento presenta una introducción a Erlang/OTP. Brevemente describe a Erlang/OTP como un lenguaje de programación funcional y una plataforma diseñada para sistemas altamente concurrentes, tolerantes a fallos y distribuidos. También menciona algunos casos de uso comunes como WhatsApp y ejabberd, y explica cómo Erlang/OTP puede abordar mejor los problemas de escalabilidad en comparación con otras tecnologías como PHP.
Rust es un lenguaje de programación de sistemas creado por Mozilla Corporation que es potente y seguro. El documento presenta a Karla Jurado y explica brevemente qué es Rust, por qué usar Rust en lugar de C/C++ o Java, cómo compilar código Rust usando Cargo, y conceptos básicos como variables, mutabilidad, tipos de datos, manejo de memoria y concurrencia. Finalmente, Karla agradece y ofrece contactarse con más preguntas.
JAVA es un lenguaje orientado a objetos, multiplataforma e interpretado que se compila a código de máquina independiente de la plataforma. Los programas en JAVA se escriben en clases que contienen métodos como main que se ejecutan cuando se invoca el intérprete de JAVA. JAVA soporta tipos de datos primitivos como enteros, reales y caracteres, así como declaraciones, expresiones, instrucciones de control de flujo y conversiones de tipos.
Este documento presenta una introducción a TypeScript. Se describe a TypeScript como una posible solución para añadir tipos estáticos y características de programación orientada a objetos a JavaScript. El documento también proporciona información sobre los orígenes de TypeScript y recursos adicionales como su sitio web y código fuente.
Mini clase Intro Programación Python UTN Profesorado 2015Mariano Reingart
Introducción a la programación de computadoras con Python
Presentación del lenguaje de programación Python
Motivaciones y estudios relacionados
Descargas - Instalación
Estructuras básicas (condicionales, ciclos, funciones)
Demostración
Feedback
Bonus track (trabajo de los alumnos con raspberry pi, desarrollo web, niños)
Chicago boss - Altenwald - Betabeers X CórdobaManuel Rubio
Este documento presenta a Manuel Ángel Rubio Jiménez, un programador y administrador de sistemas con más de 20 años de experiencia. Explica brevemente lo que es Erlang, incluyendo su historia, características y usuarios notables. También describe conceptos clave como el modelo actor, OTP, patrones de diseño comunes en Erlang como gen_server y gen_fsm, y el framework web ChicagoBoss basado en Erlang.
Erlang/OTP - V Taller de Programación FuncionalManuel Rubio
Charla dada en el marco del IV Congreso Español de Informática (CEDI) en la Universidad Complutense de Madrid, en las jornadas organizadas por PROLE para su V Taller de Programación Funcional.
Erlang/OTP - Altenwald - CodeMotion Madrid 2013Manuel Rubio
Erlang/OTP: Un Mundo Concurrente, charla dada el 19 de octubre de 2013 a las 15:15h en el Track Programming de CodeMotion 2013 de Madrid. La charla hace un repaso de la base del Lenguaje Erlang, el framework OTP y las ventajas que ofrece su plataforma.
http://altenwald.org/2013/10/21/codemotion-2013/
Manejando Millones de Usuarios Concurrentes con Erlang/OTPManuel Rubio
Este documento presenta una introducción a Erlang/OTP. Brevemente describe a Erlang/OTP como un lenguaje de programación funcional y una plataforma diseñada para sistemas altamente concurrentes, tolerantes a fallos y distribuidos. También menciona algunos casos de uso comunes como WhatsApp y ejabberd, y explica cómo Erlang/OTP puede abordar mejor los problemas de escalabilidad en comparación con otras tecnologías como PHP.
Rust es un lenguaje de programación de sistemas creado por Mozilla Corporation que es potente y seguro. El documento presenta a Karla Jurado y explica brevemente qué es Rust, por qué usar Rust en lugar de C/C++ o Java, cómo compilar código Rust usando Cargo, y conceptos básicos como variables, mutabilidad, tipos de datos, manejo de memoria y concurrencia. Finalmente, Karla agradece y ofrece contactarse con más preguntas.
JAVA es un lenguaje orientado a objetos, multiplataforma e interpretado que se compila a código de máquina independiente de la plataforma. Los programas en JAVA se escriben en clases que contienen métodos como main que se ejecutan cuando se invoca el intérprete de JAVA. JAVA soporta tipos de datos primitivos como enteros, reales y caracteres, así como declaraciones, expresiones, instrucciones de control de flujo y conversiones de tipos.
Este documento presenta una introducción a TypeScript. Se describe a TypeScript como una posible solución para añadir tipos estáticos y características de programación orientada a objetos a JavaScript. El documento también proporciona información sobre los orígenes de TypeScript y recursos adicionales como su sitio web y código fuente.
Mini clase Intro Programación Python UTN Profesorado 2015Mariano Reingart
Introducción a la programación de computadoras con Python
Presentación del lenguaje de programación Python
Motivaciones y estudios relacionados
Descargas - Instalación
Estructuras básicas (condicionales, ciclos, funciones)
Demostración
Feedback
Bonus track (trabajo de los alumnos con raspberry pi, desarrollo web, niños)
Plática General sobre el lenguaje de programación Python presentada en FLISOL 2011 Celaya. Guanajuato. en el Instituto Tecnológico de Celaya por Jorge Hernández (@lesthack)
Este documento presenta un curso básico de Rust. Se introducen las ventajas de Rust como su comunidad, seguridad y capacidad de crear desde microcontroladores hasta videojuegos. También se mencionan las desventajas como su curva de aprendizaje pronunciada. El curso cubre la instalación de Rust, creación de proyectos, variables, entrada de datos, condicionales, bucles, cargando paquetes, manejo de errores y opciones, y la creación de una calculadora científica y un juego de aventura
Este documento presenta una introducción a los conceptos básicos de la programación, incluyendo definiciones de términos como algoritmo, programa, hardware, software, lenguajes de programación, datos, y más. Explica los pasos para resolver un problema con una computadora, como analizar el problema, diseñar un algoritmo, implementarlo en un lenguaje de programación, y depurarlo. También describe conceptos como pseudocódigo y diagramas de flujo para describir algoritmos de manera más legible.
Este documento presenta una introducción al lenguaje de programación Java. Define Java como un lenguaje orientado a objetos comercializado por primera vez en 1995 por Sun Microsystems. Explica que las características de Java incluyen ser orientado a objetos, funcionar perfectamente en la red, tener gran funcionalidad a través de librerías de clases, y gestionar la memoria automáticamente. También presenta los tipos de datos básicos en Java como enteros, flotantes, caracteres y cadenas, y describe varios operadores comunes como aritméticos, l
Este documento presenta una introducción al lenguaje de programación C. Explica los conceptos básicos de un computador como la CPU, memoria y periféricos. Describe los elementos fundamentales del lenguaje C como tipos de datos, variables, constantes, operadores, expresiones, sentencias y funciones. También introduce conceptos avanzados como punteros, vectores, matrices, estructuras y el preprocesador. El objetivo es proporcionar una base para empezar a aprender a programar en C.
Este documento presenta una introducción al lenguaje de programación C. Explica los conceptos básicos como las partes de un computador, la memoria, los programas y funciones. También describe los diferentes tipos de datos, constantes, operadores, expresiones y sentencias que se pueden utilizar en C. Por último, introduce temas como el control de flujo, punteros, funciones, entrada/salida y el preprocesador.
Este documento presenta una introducción a la penetración de redes. Explica las consideraciones éticas de la actividad, la importancia del escaneo y reconocimiento de redes usando herramientas como NMAP, y los diferentes tipos de ataques como overflow de pila, rootkits y más. También cubre temas como el análisis forense posterior a un ataque.
La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. Un lenguaje de alto nivel permite al programador escribir instrucciones utilizando palabras similares al lenguaje natural. Un lenguaje de máquina es el sistema de códigos directamente interpretable por un circuito, y consiste en una cadena de instrucciones binarias.
Universidad tecnológica del estado de zacatecas trabajo de lucy estimaciónclauddiaa
Este documento presenta un caso práctico para estimar el esfuerzo requerido para desarrollar un sistema de clientes para una empresa utilizando la técnica de estimación de puntos de función. Se describen los archivos lógicos internos y externos del sistema, y se calcula la complejidad de cada uno para estimar los puntos de función no ajustados. Luego, se consideran factores técnicos y ambientales para calcular los puntos de función ajustados y estimar las horas-hombre totales requeridas para el proyecto.
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIAIsaias Castro
Este documento presenta la arquitectura interna de una máquina rudimentaria. Describe el modelo de Von Neumann y los diferentes niveles de un computador, incluyendo la lógica digital, el lenguaje máquina y los niveles más altos. Luego se detalla la máquina rudimentaria, incluyendo su lenguaje máquina de 3 tipos de instrucciones y su lógica digital para ejecutarlas de forma secuencial. Finalmente, presenta el índice del documento.
1. Introduce los sistemas de numeración binario y decimal, y explica cómo los números binarios representan valores decimales según su posición y potencia de 2.
2. Explica que los computadores almacenan toda la información en binario para simplificar el hardware.
3. Proporciona un cuadro que muestra los números decimales del 0 al 15 y su equivalente en binario.
Este documento resume la evolución de la persistencia de datos en lenguajes de programación y .NET. Comienza con un breve historial de lenguajes como FORTRAN, ALGOL y COBOL. Luego describe cómo C y C++ usan archivos para persistencia. Posteriormente, habla sobre tecnologías como Clipper, Delphi, Visual Basic y ADO que agregan capacidades de bases de datos. Luego, describe cómo C# y .NET introducen LINQ para consultas y serialización de objetos. Finalmente, analiza enfoques como NHibernate, db4Objects y Zero que
Este documento presenta una introducción al lenguaje de programación Python. Explica que Python es un lenguaje dinámico, de código abierto y multiplataforma creado en 1991. Se utiliza ampliamente en empresas como Google, Yahoo y la NASA. El taller no pretende hacer a los asistentes expertos en Python, sino compartir una herramienta útil para aprender y programar de manera fácil. Finalmente, el documento incluye enlaces a recursos adicionales sobre Python.
Este documento describe un proyecto de implementación de circuitos digitales para la educación. El proyecto analizará conceptos básicos de sistemas lógicos combinacionales y secuenciales programables para implementar circuitos que controlen secuencias y procesos automáticos y diseñen sistemas digitales para la manipulación de datos con fines educativos. El marco teórico explica diferentes tipos de compuertas lógicas como AND, OR, NAND y NOR y su aplicación en la enseñanza para desarrollar el pensamiento lóg
Este documento describe un proyecto para implementar circuitos digitales en la educación con el objetivo de innovar el proceso de enseñanza-aprendizaje. Explica conceptos básicos de circuitos lógicos como compuertas AND, NAND, OR y NOR y su aplicación potencial en la enseñanza para desarrollar el pensamiento lógico en los estudiantes.
El documento habla sobre software libre y GNU/Linux. Explica que el software libre permite la libertad de uso, modificación y redistribución. Menciona varias distribuciones populares de GNU/Linux como Ubuntu, Debian y Knoppix. También describe entornos de escritorio como GNOME, KDE y XFCE. Finalmente, menciona asociaciones de usuarios de software libre como AsturLiNUX.
Python programming 6 hours course about a introduction to the functional-imperative programming paradigm, took about the ITSCH students of 2° and 8° grade
Plática General sobre el lenguaje de programación Python presentada en FLISOL 2011 Celaya. Guanajuato. en el Instituto Tecnológico de Celaya por Jorge Hernández (@lesthack)
Este documento presenta un curso básico de Rust. Se introducen las ventajas de Rust como su comunidad, seguridad y capacidad de crear desde microcontroladores hasta videojuegos. También se mencionan las desventajas como su curva de aprendizaje pronunciada. El curso cubre la instalación de Rust, creación de proyectos, variables, entrada de datos, condicionales, bucles, cargando paquetes, manejo de errores y opciones, y la creación de una calculadora científica y un juego de aventura
Este documento presenta una introducción a los conceptos básicos de la programación, incluyendo definiciones de términos como algoritmo, programa, hardware, software, lenguajes de programación, datos, y más. Explica los pasos para resolver un problema con una computadora, como analizar el problema, diseñar un algoritmo, implementarlo en un lenguaje de programación, y depurarlo. También describe conceptos como pseudocódigo y diagramas de flujo para describir algoritmos de manera más legible.
Este documento presenta una introducción al lenguaje de programación Java. Define Java como un lenguaje orientado a objetos comercializado por primera vez en 1995 por Sun Microsystems. Explica que las características de Java incluyen ser orientado a objetos, funcionar perfectamente en la red, tener gran funcionalidad a través de librerías de clases, y gestionar la memoria automáticamente. También presenta los tipos de datos básicos en Java como enteros, flotantes, caracteres y cadenas, y describe varios operadores comunes como aritméticos, l
Este documento presenta una introducción al lenguaje de programación C. Explica los conceptos básicos de un computador como la CPU, memoria y periféricos. Describe los elementos fundamentales del lenguaje C como tipos de datos, variables, constantes, operadores, expresiones, sentencias y funciones. También introduce conceptos avanzados como punteros, vectores, matrices, estructuras y el preprocesador. El objetivo es proporcionar una base para empezar a aprender a programar en C.
Este documento presenta una introducción al lenguaje de programación C. Explica los conceptos básicos como las partes de un computador, la memoria, los programas y funciones. También describe los diferentes tipos de datos, constantes, operadores, expresiones y sentencias que se pueden utilizar en C. Por último, introduce temas como el control de flujo, punteros, funciones, entrada/salida y el preprocesador.
Este documento presenta una introducción a la penetración de redes. Explica las consideraciones éticas de la actividad, la importancia del escaneo y reconocimiento de redes usando herramientas como NMAP, y los diferentes tipos de ataques como overflow de pila, rootkits y más. También cubre temas como el análisis forense posterior a un ataque.
La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. Un lenguaje de alto nivel permite al programador escribir instrucciones utilizando palabras similares al lenguaje natural. Un lenguaje de máquina es el sistema de códigos directamente interpretable por un circuito, y consiste en una cadena de instrucciones binarias.
Universidad tecnológica del estado de zacatecas trabajo de lucy estimaciónclauddiaa
Este documento presenta un caso práctico para estimar el esfuerzo requerido para desarrollar un sistema de clientes para una empresa utilizando la técnica de estimación de puntos de función. Se describen los archivos lógicos internos y externos del sistema, y se calcula la complejidad de cada uno para estimar los puntos de función no ajustados. Luego, se consideran factores técnicos y ambientales para calcular los puntos de función ajustados y estimar las horas-hombre totales requeridas para el proyecto.
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIAIsaias Castro
Este documento presenta la arquitectura interna de una máquina rudimentaria. Describe el modelo de Von Neumann y los diferentes niveles de un computador, incluyendo la lógica digital, el lenguaje máquina y los niveles más altos. Luego se detalla la máquina rudimentaria, incluyendo su lenguaje máquina de 3 tipos de instrucciones y su lógica digital para ejecutarlas de forma secuencial. Finalmente, presenta el índice del documento.
1. Introduce los sistemas de numeración binario y decimal, y explica cómo los números binarios representan valores decimales según su posición y potencia de 2.
2. Explica que los computadores almacenan toda la información en binario para simplificar el hardware.
3. Proporciona un cuadro que muestra los números decimales del 0 al 15 y su equivalente en binario.
Este documento resume la evolución de la persistencia de datos en lenguajes de programación y .NET. Comienza con un breve historial de lenguajes como FORTRAN, ALGOL y COBOL. Luego describe cómo C y C++ usan archivos para persistencia. Posteriormente, habla sobre tecnologías como Clipper, Delphi, Visual Basic y ADO que agregan capacidades de bases de datos. Luego, describe cómo C# y .NET introducen LINQ para consultas y serialización de objetos. Finalmente, analiza enfoques como NHibernate, db4Objects y Zero que
Este documento presenta una introducción al lenguaje de programación Python. Explica que Python es un lenguaje dinámico, de código abierto y multiplataforma creado en 1991. Se utiliza ampliamente en empresas como Google, Yahoo y la NASA. El taller no pretende hacer a los asistentes expertos en Python, sino compartir una herramienta útil para aprender y programar de manera fácil. Finalmente, el documento incluye enlaces a recursos adicionales sobre Python.
Este documento describe un proyecto de implementación de circuitos digitales para la educación. El proyecto analizará conceptos básicos de sistemas lógicos combinacionales y secuenciales programables para implementar circuitos que controlen secuencias y procesos automáticos y diseñen sistemas digitales para la manipulación de datos con fines educativos. El marco teórico explica diferentes tipos de compuertas lógicas como AND, OR, NAND y NOR y su aplicación en la enseñanza para desarrollar el pensamiento lóg
Este documento describe un proyecto para implementar circuitos digitales en la educación con el objetivo de innovar el proceso de enseñanza-aprendizaje. Explica conceptos básicos de circuitos lógicos como compuertas AND, NAND, OR y NOR y su aplicación potencial en la enseñanza para desarrollar el pensamiento lógico en los estudiantes.
El documento habla sobre software libre y GNU/Linux. Explica que el software libre permite la libertad de uso, modificación y redistribución. Menciona varias distribuciones populares de GNU/Linux como Ubuntu, Debian y Knoppix. También describe entornos de escritorio como GNOME, KDE y XFCE. Finalmente, menciona asociaciones de usuarios de software libre como AsturLiNUX.
Python programming 6 hours course about a introduction to the functional-imperative programming paradigm, took about the ITSCH students of 2° and 8° grade
Similar a Erlang otp yuilop - ieee developer days 2013 (20)
El uso de las TIC en la vida cotidiana.pptxjgvanessa23
En esta presentación, he compartido información sobre las Tecnologías de la Información y la Comunicación (TIC) y su aplicación en diversos ámbitos de la vida cotidiana, como el hogar, la educación y el trabajo.
He explicado qué son las TIC, las diferentes categorías y sus respectivos ejemplos, así como los beneficios y aplicaciones en cada uno de estos ámbitos.
Espero que esta información sea útil para quienes la lean y les ayude a comprender mejor las TIC y su impacto en nuestra vida cotidiana.
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)AbrahamCastillo42
Power point, diseñado por estudiantes de ciclo 1 arquitectura de plataformas, esta con la finalidad de dar a conocer el componente hardware llamado tarjeta de video..
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptxpauca1501alvar
Explica cómo las tecnologías digitales han facilitado e impulsado la globalización al eliminar barreras geográficas y permitir un flujo global sin precedentes de información, bienes, servicios y capital. Se describen los impactos de las herramientas digitales en áreas como la comunicación global, el comercio electrónico internacional, las finanzas y la difusión cultural. Además, se mencionan los beneficios como el crecimiento económico y el acceso a la información, así como los desafíos como la desigualdad y el impacto ambiental. Se concluye que la globalización y las herramientas digitales se refuerzan mutuamente, promoviendo una creciente interdependencia mundial.
La inteligencia artificial sigue evolucionando rápidamente, prometiendo transformar múltiples aspectos de la sociedad mientras plantea importantes cuestiones que requieren una cuidadosa consideración y regulación.
2. ¿Quién soy?
○ Programador desde los 12 años... unos 20 años programando en: Perl,
Python, Ruby, PHP, Java, C/C++, JavaScript, Pascal, Modula-2, Basic y
Erlang.
○ Administrador de sistemas desde los 22 años... unos 10 años administrando
Windows, GNU/Linux y BSD.
○ En definitiva... DevOps.
○ En Yuilop: Senior Core Server Developer.
○ Contacto:
○ Blog: http://bosqueviejo.net
○ Twitter: @MRonErlang
3. ¿Qué es Yuilop?
○ Mensajería Instantánea entre usuarios
○ SMS a los que no son usuarios
○ VoIP entre usuarios
○ Llamadas a los que no son usuarios
○ Chat de grupo entre usuarios
○ Número yuilop para ser llamado por cualquier otro teléfono
○ Más info:
5. ¿Qué es Erlang?
○ Nació en 1986 como una extensión de Prolog en los laboratorios Ericsson.
○ Lenguaje
○ ¿Funcional o no? ... mejor híbrido.
○ Orientado a la Concurrencia... Modelo Actor
○ Máquina Virtual o Plataforma
○ Gestión y Planificador de Procesos (soporta más de 1.000.000 procs)
○ Gestor de Memoria
○ Intérprete de comandos (shell)
○ Interfaz transparente para comunicación entre nodos
○ Características
○ Distribuido
○ Tolerante a fallos
○ Escalable
○ Cambio de código en caliente
6. Progresión Informática
○ Carrera de los Hertzios vs Cores
Cuando estás en un atasco de tráfico con un Porsche, todo lo que puedes hacer es
consumir más combustible que el resto estando parado. La escalabilidad va de construir
carreteras más anchas, no coches más rápidos.
-- Steve Swartz
○ Programación Orientada a Objetos se atribuye a Alan Kay (Smalltalk)
○ Modelo Actor se atribuye a Carl Hewitt por un estudio de 1977.
7. Caso
○ En 2005, sistemas C++ y MySQL
○ Máx. 80 usuarios concurrentes
○ Crashes son muy frecuentes
○ En 2006, sistemas C++, Python y MySQL
○ Máx. 1.000 usuarios concurrentes
○ Requiere reinicios, el código es difícil de mantener... muchos errores
○ En 2007, sistemas Erlang, Python y MySQL
○ De 20.000 a 1.000.000 de usuarios concurrentes en Call of Duty 4
○ De 500 a 50.000 peticiones por segundo
○ De 50 a 1.850 servidores
10. El camino de Yuilop
○ Android y PHP (vía HTTP)
○ Falta de instantaneidad en los mensajes
○ Hace falta una gran infraestructura además de ayudas:
■ Memcache
■ APC
■ FPM, FastCGI, Ngnix, ...
○ Android, iOS y Java (vía XMPP)
○ OpenFire no sirve para una cantidad alta de usuarios concurrentes
○ Los deadlocks de Java hacen que todo caiga
○ Android, iOS, BlackBerry, Windows Phone y Erlang (vía XMPP)
○ Escalabilidad asegurada
○ Más de 2 millones de usuarios con alto grado de concurrencia
13. Sintaxis de Erlang
Solo hay dos tipos de lenguajes:
aquellos de los que la gente se queja y
aquellos que nadie usa.
-- Bjarne Stroustrup
Ejemplo típico del factorial
14. Sintaxis de Erlang
Solo hay dos tipos de lenguajes:
aquellos de los que la gente se queja y
aquellos que nadie usa.
-- Bjarne Stroustrup
Ejemplo típico del factorial (C)
factorial(int f) {
int i;
for (i=f-1; i>1; i--) {
f = f * i;
}
return f;
}
15. Sintaxis de Erlang
Solo hay dos tipos de lenguajes:
aquellos de los que la gente se queja y
aquellos que nadie usa.
-- Bjarne Stroustrup
Ejemplo típico del factorial (C recursivo)
factorial(int f) {
if (f <= 1) {
return f;
}
return f * factorial(f-1);
}
16. Sintaxis de Erlang
Solo hay dos tipos de lenguajes:
aquellos de los que la gente se queja y
aquellos que nadie usa.
-- Bjarne Stroustrup
Ejemplo típico del factorial (Erlang)
factorial(0) -> 0;
factorial(1) -> 1;
factorial(N) -> N * factorial(N-1).
17. Características del Lenguaje
○ Asignaciones únicas
> A = 1.
1
> A = 2.
** exception error: no match of right hand side value 2
○ Lenguaje simple: case, if, try...catch y receive.
case Value of
12 when is_integer(Value) -> "OK";
_ -> "FAIL";
end.
○ Paso de mensajes
Pid = spawn(fun micode/0),
Pid ! "hola mundo!",
receive
Any -> io:format("OK")
end.