Email or username:

Password:

Forgot your password?
Top-level
Devine Lu Linvega

Porting projects to making use of lambdas, the ability to nest them is really nice.

In screenshot, left is button handling with lambdas, right is without where each state has to have a unique label.

10 comments
Nico Nico Belić

@neauoire I have no clue how you manage to make Uxn look so pretty, but you're definitely the best ambassador I know

Devine Lu Linvega

@a13cui Haha, thanks. I'm glad you think they're pretty. I think because varvara enforces a kind of grid, it gives everything a certain look

gvv

@neauoire they both say left, which one is right 🤪

tbsp

@neauoire This example of uxntal lambdas is the first one that really clicked for me. 😅

Devine Lu Linvega

@tbsp I've tried writing a bit of documentation here: wiki.xxiivv.com/site/uxntal_la

Do you think it's understandable?

tbsp

@neauoire I see you've expanded it a bit since I read it last. There are still bits that go over my head, but it's clearer now.
Are lambda blocks preceded by immediate runes treated differently by the assembler than those without? The JCI case seems to insert the jump offset following the immediate opcode, whereas it sounds like the others use an immediate jump as well as push the start pointer to the return stack.

Devine Lu Linvega

@tbsp The way it works behind the scene is interpreting a single { as a JSI looking for a closing label called "lambdaXX". You can use runes with it like any other label, it's dynamically looking for its closing bracket. So you could do ={ }, -{ }, !{ }, etc..

C: git.sr.ht/~rabbits/uxn/tree/ma
tal: git.sr.ht/~rabbits/drifblim/tr

Go Up