2 votos

Introducción a los "efectos secundarios" computacionales desde una perspectiva algebraica.

En la programación funcional, efectos secundarios son un problema común (tratar con el mundo exterior). En matemáticas, las funciones suelen considerarse "puras". Elm es un lenguaje de programación que maneja los efectos secundarios para que parezca que estás en un entorno funcional puro, protegiéndote de las impurezas. Haskell maneja los efectos secundarios usando mónadas (no tengo mucha experiencia con Haskell).

Lo que me pregunto es, una breve introducción al concepto de efectos secundarios desde un punto de vista algebraico. Algo que le permita a uno entender:

  1. Cómo se pueden contabilizar cosas como los errores/excepciones .
  2. Cómo se pueden explicar los cambios desconocidos en el estado del mundo exterior . (Como hacer una consulta de búsqueda en el navegador, modifica todo tipo de cosas).

Así, por ejemplo, digamos que tienes una función que devuelve un valor booleano:

$$ f : X \rightarrow B $$

donde $X = \{a, b, c\}$ y $B = \{1, 0\}$ .

Pero digamos que la función hace una petición HTTP y por lo tanto modifica el mundo externo, me pregunto cómo se contabilizaría eso en la ecuación para hacer la función "pura" de nuevo. Me pregunto si es tan simple como:

$$ f(w): X \rightarrow B $$

donde $w$ es el mundo exterior.

O tal vez hay más para que siga junto con el material en los campos efectos algebraicos / computacionales.

El segundo caso es la gestión de errores. Puede que la función tenga ocasionalmente un error. Así que me pregunto cómo se modelaría matemáticamente según esta área de trabajo.

$$ f(w) : X \rightarrow B \lor e $$

donde $e \in E$ es un error/excepción.

Para alguien con interés en entender los efectos algebraicos / mónadas, pero con poca o ninguna experiencia previa, cómo ir a modelarlos matemáticamente. Específicamente, cómo dar cuenta de los cambios de estado del mundo (conocidos o desconocidos) y los errores o comportamientos inesperados, utilizando la notación matemática.

La lectura de un documento como Lambda-cálculo computacional y mónadas (1988) está un poco por encima de mi cabeza. Otros documentos como Efectos algebraicos para la programación funcional simplemente salta directamente al código fuente de programación y se salta las matemáticas.

2voto

sonu kumar Puntos 19

Un lugar para empezar podría ser el libro de Plotkin y Pretnar " Una lógica para los efectos algebraicos " [PDF]. De manera más general, puede interesarle leer esta bibliografía .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X