[TM-283] Implement `APPLY` instruction
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
Stylistic guide (mandatory)
-
My commits comply with the following policy. -
My code complies with the style guide.
Edited by Konstantin Ivanov