funcpy:
Maybe => (Just value) Nothing; a -> (Just 1); b -> Nothing; c v -> (? (isa v "Just") (get v "value") false); main -> (c (Just 1));
Python:
class Type(object): def __init__(self, option, **values): self.option = option self.values = values def isa(self, option): return lambda: self.option == option def value(self, n): return lambda: self.values[n] isa = lambda: lambda type: lambda: lambda option: lambda: type.isa(option) get = lambda: lambda type: lambda: lambda value: lambda: type.value(value) class Maybe(Type): pass Just = lambda: lambda value: lambda: Maybe("Just", value=value) Nothing = lambda: Maybe("Nothing") a = lambda: Just()(lit(1))() b = lambda: Nothing() c = lambda: lambda b: lambda: get()(v)()("value")() if isa()(v)()("Just")() else false();
There was an error while loading. Please reload this page.