[ prog / sol / mona ]

prog


Monads,Async/Await : Algebraic Effects in C99

39 2021-01-15 04:30

//also, since tuple format is known, its possible to shorten the prefix4 macro to this(tup evaluates to last, second arg);
#include "Util/void.h"
#define prefix4(tup) ((r-=(first tup))<0.0)? tup:
#define roll(tuples...) ({double r=rdouble();blankapply(prefix4,tuples)"";})
int main(){
#define OTHERWISE 1.0
puts(roll((0.5, "50% chance"),
(0.2, "20% chance"),
(OTHERWISE, "30% chance")));

;}

69


VIP:

do not edit these