/** * @param Collection $xs * @param integer $result * @param \Closure $f * @return integer */ function iterateCollection(Collection $xs, $result, $f) { if (!$xs->isEmpty()) { return iterateCollection($xs->tail(), $f($xs->head()) + $result, $f); } else { return $result; } }
public function testHeadTail() { $collection = new Collection([1, 2, 3, 4]); self::assertEquals(1, $collection->head()); self::assertCount(3, $collection->tail()); }