private static object BitOperation(Atom list, Func <object, object, object> handle) { object result = list.atom.value; StructureUtils.Each(list.next, atom => { result = handle(result, atom.value); }); return(result); }