Skip to content

Instantly share code, notes, and snippets.

View apmckinlay's full-sized avatar

Andrew McKinlay apmckinlay

View GitHub Profile
@apmckinlay
apmckinlay / gist:4278013
Created December 13, 2012 17:08
One method for creating a comma separated list.
if (list.isEmpty())
return "";
for (Object x : list)
sb.append(fn(x)).append(",");
return sb.deleteCharAt(sb.length() - 1).toString();
@apmckinlay
apmckinlay / gist:4277990
Created December 13, 2012 17:05
One method for creating a comma separated list.
for (int i = 0; i < array.length; ++i) {
if (i > 0)
sb.append(",");
sb.append(fn(array[i]));
}
return sb.toString();
@apmckinlay
apmckinlay / gist:3701471
Created September 11, 2012 19:42
built-in method using MethodHandle behind the scenes
@Params("value, block=false")
public static Object EqualRange(Object self, Object a, Object b) {
Range r = ((SuContainer) self).equalRange(a, b);
return SuContainer.of(r.left, r.right);
}
@apmckinlay
apmckinlay / gist:3701451
Created September 11, 2012 19:38
old way of implementing built-in methods
public static class EqualRange extends SuMethod2 {
{ params = new FunctionSpec(array("value", "block"), Boolean.FALSE); }
@Override
public Object eval2(Object self, Object a, Object b) {
Range r = ((SuContainer) self).equalRange(a, b);
return SuContainer.of(r.left, r.right);
}
}