🇪🇸 Marlowe 7: escribiendo contratos reales

:es: Traducción al español de “Marlowe 7: writing real contracts”

Publicado en el canal de Youtube de Simon Thompson el 15 de Abril de 2020

Enlace a la versión doblada al español


En este video me gustaría hablar un poco sobre cómo escribimos los contratos en la práctica usando Marlowe, lo que hacemos es usar el hecho de que Marlowe está incrustado en Haskell, para escribir abreviaturas en Haskell, para escribir funciones comunes, etc que hacen los contratos más legibles. Así que vamos a echar un vistazo a nuestro ejemplo de custodio, si recuerdas dijimos que Alice hace una elección, Bob hace una elección, etc. Así que usamos nuestro lenguaje de dominio específico incrustado, pero de hecho lo que está pasando aquí es que todas las cosas que ves aquí en púrpura están de hecho definidas a sí mismas en Haskell. Así que por ejemplo, la elección de Alice es particular, es un nombre para una acción, sólo que nos da una abreviación para la elección que Alice ha hecho, si decimos “es pagado” hemos escrito un simple predicado, que es un predicado que compara el argumento para su pago con la constante cero, así que X está representando una elección para hacer un pago. Así que lo que estamos haciendo aquí a la izquierda, puedes ver que estamos usando Haskell sólo para permitirnos escribir una abreviatura de un trozo particular de Marlowe, lo que estamos haciendo a la derecha es que estamos usando definiciones de funciones simples para representar una especie de plantillas para cosas dentro de los contratos, aquí estamos representando una elección, una especie general de elección, diciendo ¿es esta elección un pago?, estamos representando eso como una función. Pero podemos representar trozos más grandes de contratos también, así que aquí tenemos el contrato que dice arbitraje y este es un contrato que tiene un “cuando” con dos casos de alto nivel, el caso de Carol eligiendo el reembolso, el contrato cerrándose, el caso de Carol eligiendo pagar, entonces lo que sucede es un pago desde la cuenta de Alice a Bob y luego el contrato se cierra.

Así que, de nuevo, estamos usando otras abreviaturas aquí, Carol reembolsa, Carol paga el precio, para que podamos escribir contratos, como dije, que son más fáciles de leer, más fáciles de mantener, más fáciles de entender, para que podamos hacer eso usando partes de Haskell no complicadas, no particularmente complejas, simplemente, como puedes ver en la parte superior e inferior izquierda, sólo escribir abreviaturas y abajo a la derecha escribir funciones simples plantilla. La ventaja de incrustar DSL es que podemos usar un modesto conjunto de extensiones para hacer nuestros contratos más legibles. Pero por supuesto siempre tenemos la opción de escribir contratos sólo en Marlowe, así que en una forma completamente expandida. Bien, veremos otro ejemplo donde usamos algunas definiciones sencillas de Haskell cuando miremos nuestro próximo caso de contratos financieros más complejos.