>>34
#include "Util/void.h"
#define prefix4(tup) (r-=(first(detuple(tup))),r<0.0)?(second tup):
#define roll(tuples...) ({double r=rdouble();toatom(chainapply(prefix4,tuples))"";})
int main(){
#define OTHERWISE 1.0
puts(roll((0.5, "50% chance"),
(0.2, "20% chance"),
(OTHERWISE, "30% chance")));
;}