Todos los artículos
Phel: el Lisp que Compila a PHP

Phel: el Lisp que Compila a PHP

El nuevo lenguaje de Programación Funcional construido para PHP.

blog-cover

Un nuevo lenguaje de Programación Funcional construido sobre el ecosistema de PHP.

El Lenguaje Phel

Phel es un lenguaje de Programación Funcional (FP) que compila a PHP. Es un dialecto de Lisp inspirado en Clojure y Janet.

Características

  • Construido sobre el ecosistema de PHP
  • Buenos reportes de errores
  • Diferentes estructuras de datos (Arrays, Tables y Tuples)
  • Macros
  • Funciones recursivas
  • Sintaxis potente pero simple
  • REPL

¿Por qué Phel?

Phel lo creó Jens Haase. Como menciona en el sitio web, “es el resultado de muchos intentos fallidos de hacer programación funcional en PHP”. Buscaba algo con estas características:

  • Inspirado en LISP
  • Lenguaje de Programación Funcional
  • Que funcione en proveedores de hosting baratos
  • Sea fácil de escribir y depurar

A finales de mayo de 2020 terminé el libro Seven Languages in Seven Weeks, donde aprendí los fundamentos de Prolog, Erlang, Clojure, Haskell… Incluso creé un repositorio en GitHub para guardar mi progreso.

A principios de junio de 2020, vi un post en el canal de PHP de Reddit mencionando este proyecto “Phel”: un lenguaje de programación funcional escrito en PHP.

Llevo unos 8 años trabajando con PHP, y siempre intento combinar OOP con FP (creo que ambos paradigmas funcionan mejor juntos; no son excluyentes). Un nuevo dialecto de Lisp escrito en PHP 7.4 nativo sonaba emocionante. Decidí echarle un vistazo al código.

Las lecturas recientes de Mathias NoBack, como Object Design Style Guide y Advanced Web Application Architecture, me dieron el empuje para aplicar lo aprendido en un proyecto real. Este fue (y sigue siendo) un desafío que me ayuda a crecer profesionalmente.

Mi primer commit fue el 6 de junio de 2020. Desde entonces dedico un poco de tiempo cada día en mis horas libres. Me ayuda a aprender sobre FP, diseño interno de lenguajes, testing y arquitectura de software en general.

Empecé con cambios menores hasta que acabé refactorizando toda la estructura del compilador para hacer los módulos más legibles. Psalm, tipos estrictos, buena cobertura de tests, estilo de código unificado… Estos fueron algunos de mis temas favoritos.

Ejemplo de código Phel

El siguiente ejemplo da una breve impresión de cómo se ve Phel:

# Define un namespace
(ns my\example)
# Define una variable con nombre "my-name" y valor "world"
(def my-name "world")
# Define una función con nombre "print-name" y un argumento
(defn print-name [your-name]
  (print "hello" your-name))
# Llama a la función
(print-name my-name)

Estado actual de Phel

Consulta el sitio web oficial con toda la documentación: https://phel-lang.org/


También recomendado

hjklmove /search yyank dtheme ilang ttoc mmark nnote ?help

Atajos de Teclado

Movimiento vim hjkl

hArtículo anterior← left
jBajar↓ down
kSubir↑ up
lArtículo siguiente→ right
ggIr arriba
GIr al final
nSiguiente secciónnext heading
NSección anteriorprevious heading

Ir a g = go

ghIniciogo home
gbBloggo blog
grLecturasgo readings
gpTemasgo topics
geServiciosgo services
gaCharlasgo talks

Acciones

/Buscarvim search
yCopiar URLvim yank
dCambiar temadark mode
tMostrar/ocultar índicetable of contents
iCambiar idiomai18n
fSeguir enlacefollow link
mAlternar resaltadomark text

General

?Mostrar ayuda
ShiftMantener para mostrar atajos
EscCerrar
:Terminalvim command mode