public static Lambda Id() { var builder = new CodeBuilder(); builder.Parameter("$0"); builder.Variable("$0"); return(builder.Lambda()); }
public static Lambda FPut() { var builder = new CodeBuilder(); builder.Parameter("$0"); builder.Variable("$0"); builder.Operator("|>"); builder.Variable("put"); return(builder.Lambda()); }
public static Lambda AddOne() { var builder = new CodeBuilder(); builder.Parameter("$0"); builder.Variable("$0"); builder.Operator("+"); builder.Value(1); return(builder.Lambda()); }
protected override void setValue(string name, Value value, VisibilityType visibility, bool overriding, bool allowNil, int index) { base.setValue(name, value, visibility, overriding, allowNil, index); if (value is InvokableReference) { return; } var builder = new CodeBuilder(); builder.Parameter("$0"); builder.AssignToField(name, new Variable("$0"), index); var lambda = builder.Lambda(); var setterName = SetterName(name); var invokableName = InvokableName(setterName); State.SetInvokable(invokableName, lambda); base.setValue(setterName, new InvokableReference(invokableName), VisibilityType.Public, false, false, index); removeAbstracts(name); }
public void Parameter(string name, Value defaultValue = null, Object.VisibilityType visibility = Object.VisibilityType.Public, bool readOnly = false, bool lazy = false) { builder.Parameter(name, defaultValue, visibility, readOnly, lazy); }