function addContents() { $addContents = function ($name, $parts) { $names = F\filter(F\notEq($name), F\map(F\get('name'), $parts)); var_dump($names); $contents = F\map(function ($partname) use($name) { $link = URL . "/docs/{$name}.md#{$partname}"; return "- [{$partname}]({$link})"; }, $names); file_put_contents("docs/README.md", F\join("\n\n", F\concat(["## {$name}"], $contents)) . "\n\n", FILE_APPEND); return array_merge(['# ' . $name, '## Table Of Contents'], $contents, F\map(F\get('md'), $parts)); }; return F\apply(F\curry($addContents), func_get_args()); }
public function test_curry_function_using_func_get_args() { $fn = function ($x, $y) { return implode(', ', func_get_args()); }; $curried = F\curry($fn); $curriedOne = $curried('foo'); $this->assertEquals('foo, bar', $fn('foo', 'bar')); $this->assertEquals('foo, bar', $curried('foo', 'bar')); $this->assertEquals('foo, bar', $curriedOne('bar')); }