Skip to content

[TM-283] Implement `APPLY` instruction

Konstantin Ivanov requested to merge martoon/tm283-apply-instr into babylon

Description

[TM-283] Implement `APPLY` instruction

This instruction allows partially applying a lambda, and its semantics
is literally:

```
:: 'a : lambda (pair 'a 'b) 'c : 'C   ->   lambda 'b 'c : 'C
> APPLY / a : code : S  => { PUSH t v ; PAIR ; code } : S
```

(as written in [Michelson spec](http://tezos.gitlab.io/zeronet/whitedoc/michelson.html#control-structures))

Related issue(s)

https://issues.serokell.io/issue/TM-283

Checklist for your Merge Request

Related changes (conditional)

  • Tests (see short guidelines)

    • If I added new functionality, I added tests covering it.
    • If I fixed a bug, I added a regression test to prevent the bug from silently reappearing again.
  • Documentation

    • I checked whether I should update the docs and did so if necessary:

Stylistic guide (mandatory)

Edited by Konstantin Ivanov

Merge request reports