MuranoPL lazy blocks

Registered by Stan Lagun

Currently all yaql expressions in MuranoPL are evaluated in place. This makes impossible to have expression (structure, macro etc) itself as a value. For example it is impossible to assign yaql expression that will be evaluated later

It is proposed to extend LHS expressions with lazy blocks:

- lambda($x): $a + 2 # assigns evaluatable expression/structure to $x
- $value: $x(a=>1) # $value: 3

- code($x): # anonymous code block
   - $.foo()
   - $.bar()
- $res: $x() # execute $x

- func($x): # anonymous function
   Arguments:
       arg:
           Contract: $.int()
   Body:
        Return: $arg+1
- $x(arg => 3) # execute

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Stan Lagun
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.