đŸ‡§đŸ‡· Tutorial Marlowe 8/14

Tutorial completo em Tutorial Marlowe 3.0 (Parte 8) – Educação Cardano

8. Marlowe Embarcado

Neste tutorial, voltamos ao exemplo do compromisso e mostramos como podemos usar a Marlowe embarcado em Haskell para criar descriçÔes mais legĂ­veis, modulares e reutilizĂĄveis ​​dos contratos da Marlowe.

8.1 Um simples contrato de compromisso, revisitado

Lembre-se de que desenvolvemos este contrato da Marlowe em nosso tutorial anterior.

Enquanto o apresentamos como um contrato “monolĂłtico”, podemos usar as definiçÔes de Haskell para tornĂĄ-lo mais legĂ­vel. Para começar, podemos separar o compromisso inicial da parte interna do contrato:

Muitos dos termos aqui sĂŁo definidos em Haskell. Principalmente, temos os dois contratos que lidam com o que acontece quando hĂĄ acordo entre Alice e Bob e, se nĂŁo, como Carol deve arbitrar entre eles:

Dentro desses contratos, também usamos abreviaçÔes simples, como

que indica o preço do gato e, portanto, o valor do dinheiro sob custódia.

Também podemos descrever as escolhas feitas por Alice e Bob, observando que também é solicitado um valor padrão defValue, caso as escolhas não tenham sido feitas.

Ao descrever as opçÔes, podemos atribuir nomes sensíveis aos valores numéricos:

e definir novas funçÔes (ou “modelos”) para nĂłs mesmos. Neste caso, definimos

como uma maneira de tornar a expressĂŁo das escolhas um pouco mais simples e mais legĂ­vel:

Dadas todas essas definiçÔes, somos capazes de escrever o contrato no inĂ­cio desta seção, de maneira a tornar clara sua intenção. Escrevendo em Marlowe ‘puro’ ou expandindo essas definiçÔes, terĂ­amos esse contrato:

“ExercĂ­cios: Que outras abreviaçÔes vocĂȘ poderia adicionar ao contrato na parte superior da pĂĄgina?

VocĂȘ consegue identificar alguma função que possa definir para tornar o contrato mais curto ou mais modular?”

Este exemplo mostrou como a utilizar o Haskell de forma embarcada nos fornece uma linguagem mais expressiva, simplesmente reutilizando alguns dos recursos bĂĄsicos do Haskell, a saber, definiçÔes de constantes e funçÔes. No prĂłximo tutorial, vocĂȘ aprenderĂĄ sobre como exercitar contratos Marlowe em ghci.

Nota

Este contrato estĂĄ contido nos mĂłdulos EscrowSimpleV2.hs

A versão expandida vem do Marlowe Playground, que suporta a expansão de definiçÔes embarcadas no Marlowe puro.

1 Like

Muito bom! :clap:t4: :clap:t4: :clap:t4: