| @@ -94,6 +94,7 @@ discard block | ||
| 94 | 94 | * | 
| 95 | 95 | * @param mixed $data | 
| 96 | 96 | * @param array $operations | 
| 97 | + * @param boolean $type | |
| 97 | 98 | * @return Stream | 
| 98 | 99 | */ | 
| 99 | 100 | protected static function with ($data, $operations, $type) | 
| @@ -414,7 +415,6 @@ discard block | ||
| 414 | 415 | * | 
| 415 | 416 | * @signature Stream(a) -> (String, ...) -> Stream(*) | 
| 416 | 417 | * @param string $method | 
| 417 | - * @param mixed|null $args... | |
| 418 | 418 | * @return Stream | 
| 419 | 419 | */ | 
| 420 | 420 | public function call ($method) | 
| @@ -468,7 +468,6 @@ discard block | ||
| 468 | 468 | * | 
| 469 | 469 | * @signature Stream(a) -> (String, ...) -> Stream(a) | 
| 470 | 470 | * @param string $method | 
| 471 | - * @param mixed|null $args... | |
| 472 | 471 | * @return Stream | 
| 473 | 472 | */ | 
| 474 | 473 | public function run ($method) | 
| @@ -81,7 +81,7 @@ discard block | ||
| 81 | 81 | * @param mixed $data | 
| 82 | 82 | * @return Stream | 
| 83 | 83 | */ | 
| 84 | - public static function of ($data) | |
| 84 | + public static function of($data) | |
| 85 | 85 |      { | 
| 86 | 86 | $data = func_get_args(); | 
| 87 | 87 | if (count($data) == 1) | 
| @@ -96,7 +96,7 @@ discard block | ||
| 96 | 96 | * @param array $operations | 
| 97 | 97 | * @return Stream | 
| 98 | 98 | */ | 
| 99 | - protected static function with ($data, $operations, $type) | |
| 99 | + protected static function with($data, $operations, $type) | |
| 100 | 100 |      { | 
| 101 | 101 | return new Stream($data, $operations, $type); | 
| 102 | 102 | } | 
| @@ -107,7 +107,7 @@ discard block | ||
| 107 | 107 | * @param array $operations | 
| 108 | 108 | * @return array|Error | 
| 109 | 109 | */ | 
| 110 | - protected static function optimize ($operations) | |
| 110 | + protected static function optimize($operations) | |
| 111 | 111 |      { | 
| 112 | 112 | // TODO: ... | 
| 113 | 113 | return $operations; | 
| @@ -120,11 +120,11 @@ discard block | ||
| 120 | 120 | * @param mixed $data | 
| 121 | 121 | * @return mixed|Error | 
| 122 | 122 | */ | 
| 123 | - protected static function execute ($operations, $data) | |
| 123 | + protected static function execute($operations, $data) | |
| 124 | 124 |      { | 
| 125 | 125 | if (length($operations) == 0) | 
| 126 | 126 | return $data; | 
| 127 | -        $operations = apply(_f('pipe'), map(function($operation){ | |
| 127 | +        $operations = apply(_f('pipe'), map(function($operation) { | |
| 128 | 128 |              if ($operation['name'] == 'apply') { | 
| 129 | 129 | return $operation['args']; | 
| 130 | 130 | } | 
| @@ -142,7 +142,7 @@ discard block | ||
| 142 | 142 | * @param string $type | 
| 143 | 143 | * @return bool | 
| 144 | 144 | */ | 
| 145 | - protected static function canApply ($operation, $type) | |
| 145 | + protected static function canApply($operation, $type) | |
| 146 | 146 |      { | 
| 147 | 147 | return isset(Stream::$transformations[$operation]) && ( | 
| 148 | 148 | $type == 'Unknown' || | 
| @@ -158,7 +158,7 @@ discard block | ||
| 158 | 158 | * @param string $type | 
| 159 | 159 | * @return bool | 
| 160 | 160 | */ | 
| 161 | - protected static function returnOf ($operation, $type) | |
| 161 | + protected static function returnOf($operation, $type) | |
| 162 | 162 |      { | 
| 163 | 163 | return isset(Stream::$transformations[$operation][$type]) | 
| 164 | 164 | ? Stream::$transformations[$operation][$type] | 
| @@ -173,12 +173,12 @@ discard block | ||
| 173 | 173 | * @param Stream $stream | 
| 174 | 174 | * @return Stream | 
| 175 | 175 | */ | 
| 176 | - protected static function apply ($operation, $args, $stream) | |
| 176 | + protected static function apply($operation, $args, $stream) | |
| 177 | 177 |      { | 
| 178 | 178 |          if ($stream->type == 'Error') { | 
| 179 | 179 |              return Stream::of(Error::of("Could not apply {$operation} to {$stream->type}", $stream->data)); | 
| 180 | 180 | } | 
| 181 | -        if (! Stream::canApply($operation, $stream->type)) { | |
| 181 | +        if (!Stream::canApply($operation, $stream->type)) { | |
| 182 | 182 | $data = toString($stream->data); | 
| 183 | 183 |              return Stream::of(Error::of("Could not apply {$operation} to {$stream->type}({$data})")); | 
| 184 | 184 | } | 
| @@ -194,7 +194,7 @@ discard block | ||
| 194 | 194 | * | 
| 195 | 195 | * @param mixed $data | 
| 196 | 196 | */ | 
| 197 | - protected function __construct ($data, $operations, $type) | |
| 197 | + protected function __construct($data, $operations, $type) | |
| 198 | 198 |      { | 
| 199 | 199 | $this->data = $data; | 
| 200 | 200 | $this->type = $type; | 
| @@ -232,7 +232,7 @@ discard block | ||
| 232 | 232 | * @signature Stream(a) -> a | 
| 233 | 233 | * @return mixed | 
| 234 | 234 | */ | 
| 235 | - public function get () | |
| 235 | + public function get() | |
| 236 | 236 |      { | 
| 237 | 237 | if ($this->type == 'Error') | 
| 238 | 238 | return $this->data; | 
| @@ -251,7 +251,7 @@ discard block | ||
| 251 | 251 | * @param callable $fn | 
| 252 | 252 | * @return Stream | 
| 253 | 253 | */ | 
| 254 | - public function map (callable $fn) | |
| 254 | + public function map(callable $fn) | |
| 255 | 255 |      { | 
| 256 | 256 |          return Stream::apply('map', [$fn], $this); | 
| 257 | 257 | } | 
| @@ -268,7 +268,7 @@ discard block | ||
| 268 | 268 | * @param callable $predicate | 
| 269 | 269 | * @return Stream | 
| 270 | 270 | */ | 
| 271 | - public function filter (callable $predicate) | |
| 271 | + public function filter(callable $predicate) | |
| 272 | 272 |      { | 
| 273 | 273 |          return Stream::apply('filter', [$predicate], $this); | 
| 274 | 274 | } | 
| @@ -286,7 +286,7 @@ discard block | ||
| 286 | 286 | * @param mixed $initial | 
| 287 | 287 | * @return Stream | 
| 288 | 288 | */ | 
| 289 | - public function reduce ($fn, $initial) | |
| 289 | + public function reduce($fn, $initial) | |
| 290 | 290 |      { | 
| 291 | 291 |          return Stream::apply('reduce', [$fn, $initial], $this); | 
| 292 | 292 | } | 
| @@ -305,7 +305,7 @@ discard block | ||
| 305 | 305 | * @param callable $fn | 
| 306 | 306 | * @return Stream | 
| 307 | 307 | */ | 
| 308 | - public function chain ($fn) | |
| 308 | + public function chain($fn) | |
| 309 | 309 |      { | 
| 310 | 310 |          return Stream::apply('chain', [$fn], $this); | 
| 311 | 311 | } | 
| @@ -325,7 +325,7 @@ discard block | ||
| 325 | 325 | * @signature Stream(String) -> Number | 
| 326 | 326 | * @return Stream | 
| 327 | 327 | */ | 
| 328 | - public function length () | |
| 328 | + public function length() | |
| 329 | 329 |      { | 
| 330 | 330 |          return Stream::apply('length', [], $this); | 
| 331 | 331 | } | 
| @@ -346,7 +346,7 @@ discard block | ||
| 346 | 346 | * @param int $number | 
| 347 | 347 | * @return Stream | 
| 348 | 348 | */ | 
| 349 | - public function take ($number) | |
| 349 | + public function take($number) | |
| 350 | 350 |      { | 
| 351 | 351 |          return Stream::apply('take', [$number], $this); | 
| 352 | 352 | } | 
| @@ -367,7 +367,7 @@ discard block | ||
| 367 | 367 | * @param callable $fn | 
| 368 | 368 | * @return Stream | 
| 369 | 369 | */ | 
| 370 | - public function then ($fn) | |
| 370 | + public function then($fn) | |
| 371 | 371 |      { | 
| 372 | 372 | $result = $this; | 
| 373 | 373 |          foreach (func_get_args() as $fn) { | 
| @@ -417,7 +417,7 @@ discard block | ||
| 417 | 417 | * @param mixed|null $args... | 
| 418 | 418 | * @return Stream | 
| 419 | 419 | */ | 
| 420 | - public function call ($method) | |
| 420 | + public function call($method) | |
| 421 | 421 |      { | 
| 422 | 422 | $args = tail(func_get_args()); | 
| 423 | 423 |          return Stream::apply('apply', function($data) use($method, $args) { | 
| @@ -471,7 +471,7 @@ discard block | ||
| 471 | 471 | * @param mixed|null $args... | 
| 472 | 472 | * @return Stream | 
| 473 | 473 | */ | 
| 474 | - public function run ($method) | |
| 474 | + public function run($method) | |
| 475 | 475 |      { | 
| 476 | 476 | $args = tail(func_get_args()); | 
| 477 | 477 |          return Stream::apply('apply', function($data) use($method, $args) { | 
| @@ -11,8 +11,6 @@ discard block | ||
| 11 | 11 | * ``` | 
| 12 | 12 | * | 
| 13 | 13 | * @signature String -> String -> [String] | 
| 14 | - * @param string $delimiter | |
| 15 | - * @param string $string | |
| 16 | 14 | * @return array | 
| 17 | 15 | */ | 
| 18 | 16 |  function split() { | 
| @@ -27,8 +25,6 @@ discard block | ||
| 27 | 25 | * ``` | 
| 28 | 26 | * | 
| 29 | 27 | * @signature String -> [String] -> String | 
| 30 | - * @param string $glue | |
| 31 | - * @param array $pieces | |
| 32 | 28 | * @return string | 
| 33 | 29 | */ | 
| 34 | 30 |  function join() { | 
| @@ -48,9 +44,6 @@ discard block | ||
| 48 | 44 | * ``` | 
| 49 | 45 | * | 
| 50 | 46 | * @signature String|[String] -> String -> String|[String] -> String | 
| 51 | - * @param string $search | |
| 52 | - * @param string $replacement | |
| 53 | - * @param string $string | |
| 54 | 47 | * @return string | 
| 55 | 48 | */ | 
| 56 | 49 |  function replace() { | 
| @@ -66,9 +59,6 @@ discard block | ||
| 66 | 59 | * ``` | 
| 67 | 60 | * | 
| 68 | 61 | * @signature String -> String -> String -> String | 
| 69 | - * @param string $pattern | |
| 70 | - * @param string $replacement | |
| 71 | - * @param string $string | |
| 72 | 62 | * @return string | 
| 73 | 63 | */ | 
| 74 | 64 |  function regReplace() { | 
| @@ -131,8 +121,6 @@ discard block | ||
| 131 | 121 | * ``` | 
| 132 | 122 | * | 
| 133 | 123 | * @signature String -> String -> String | 
| 134 | - * @param string $delimiter | |
| 135 | - * @param string $string | |
| 136 | 124 | * @return string | 
| 137 | 125 | */ | 
| 138 | 126 |  function snakeCase() { | 
| @@ -158,8 +146,6 @@ discard block | ||
| 158 | 146 | * ``` | 
| 159 | 147 | * | 
| 160 | 148 | * @signature String -> String -> Boolean | 
| 161 | - * @param string $token | |
| 162 | - * @param string $string | |
| 163 | 149 | * @return bool | 
| 164 | 150 | */ | 
| 165 | 151 |  function startsWith() { | 
| @@ -181,8 +167,6 @@ discard block | ||
| 181 | 167 | * ``` | 
| 182 | 168 | * | 
| 183 | 169 | * @signature String -> String -> Boolean | 
| 184 | - * @param string $token | |
| 185 | - * @param string $string | |
| 186 | 170 | * @return bool | 
| 187 | 171 | */ | 
| 188 | 172 |  function endsWith() { | 
| @@ -204,8 +188,6 @@ discard block | ||
| 204 | 188 | * ``` | 
| 205 | 189 | * | 
| 206 | 190 | * @signature String -> String -> Boolean | 
| 207 | - * @param string $pattern | |
| 208 | - * @param string $string | |
| 209 | 191 | * @return bool | 
| 210 | 192 | */ | 
| 211 | 193 |  function test() { | 
| @@ -225,8 +207,6 @@ discard block | ||
| 225 | 207 | * ``` | 
| 226 | 208 | * | 
| 227 | 209 | * @signature String -> String -> [String] | 
| 228 | - * @param string $pattern | |
| 229 | - * @param string $string | |
| 230 | 210 | * @return array | 
| 231 | 211 | */ | 
| 232 | 212 |  function match() { | 
| @@ -247,8 +227,6 @@ discard block | ||
| 247 | 227 | * ``` | 
| 248 | 228 | * | 
| 249 | 229 | * @signature String -> String -> Number | 
| 250 | - * @param string $token | |
| 251 | - * @param string $text | |
| 252 | 230 | * @return int | 
| 253 | 231 | */ | 
| 254 | 232 |  function occurences() { | 
| @@ -271,9 +249,6 @@ discard block | ||
| 271 | 249 | * ``` | 
| 272 | 250 | * | 
| 273 | 251 | * @signature String -> String -> String -> [String] | 
| 274 | - * @param string $surrounders | |
| 275 | - * @param string $separator | |
| 276 | - * @param sring $text | |
| 277 | 252 | * @return array | 
| 278 | 253 | */ | 
| 279 | 254 |  function chunks() { | 
| @@ -32,7 +32,7 @@ discard block | ||
| 32 | 32 | * @return string | 
| 33 | 33 | */ | 
| 34 | 34 |  function join() { | 
| 35 | -    return apply(curry(function($glue, $pieces){ | |
| 35 | +    return apply(curry(function($glue, $pieces) { | |
| 36 | 36 | return implode($glue, $pieces); | 
| 37 | 37 | }), func_get_args()); | 
| 38 | 38 | } | 
| @@ -306,8 +306,7 @@ discard block | ||
| 306 | 306 |          $updateCountAt = curry(function($item, $counts, $index) use($openings, $closings) { | 
| 307 | 307 | $count = occurences(__(), $item); | 
| 308 | 308 | return ($openings[$index] == $closings[$index]) ? | 
| 309 | - ($counts[$index] + $count($openings[$index])) % 2 : | |
| 310 | - $counts[$index] + $count($openings[$index]) - $count($closings[$index]); | |
| 309 | + ($counts[$index] + $count($openings[$index])) % 2 : $counts[$index] + $count($openings[$index]) - $count($closings[$index]); | |
| 311 | 310 | }); | 
| 312 | 311 | // Updates counts for all surrenders | 
| 313 | 312 |          $updateCounts = curry(function($item, $counts) use($indexes, $updateCountAt) { | 
| @@ -24,7 +24,7 @@ discard block | ||
| 24 | 24 | * @param Error|null $error | 
| 25 | 25 | * @return Error | 
| 26 | 26 | */ | 
| 27 | - public static function of ($message, Error $error = null) | |
| 27 | + public static function of($message, Error $error = null) | |
| 28 | 28 |      { | 
| 29 | 29 | return new Error($message, $error); | 
| 30 | 30 | } | 
| @@ -35,7 +35,7 @@ discard block | ||
| 35 | 35 | * @param string $message | 
| 36 | 36 | * @param Error|null $error | 
| 37 | 37 | */ | 
| 38 | - protected function __construct ($message, Error $error = null) | |
| 38 | + protected function __construct($message, Error $error = null) | |
| 39 | 39 |      { | 
| 40 | 40 | if (null != $error) | 
| 41 | 41 | $message = $error->message() . ' -> ' . $message; | 
| @@ -52,7 +52,7 @@ discard block | ||
| 52 | 52 | * @signature Error -> String | 
| 53 | 53 | * @return string | 
| 54 | 54 | */ | 
| 55 | - public function message () | |
| 55 | + public function message() | |
| 56 | 56 |      { | 
| 57 | 57 | return $this->message; | 
| 58 | 58 | } | 
| @@ -17,7 +17,7 @@ discard block | ||
| 17 | 17 | // Reads the list of sources files from 'composer.json' | 
| 18 | 18 | // * -> IO [String] | 
| 19 | 19 |  function modules() { | 
| 20 | - $composer = json_decode(file_get_contents(__DIR__.'/composer.json')); | |
| 20 | + $composer = json_decode(file_get_contents(__DIR__ . '/composer.json')); | |
| 21 | 21 | return $composer->autoload->files; | 
| 22 | 22 | } | 
| 23 | 23 | |
| @@ -39,7 +39,7 @@ discard block | ||
| 39 | 39 | * @field type String | 
| 40 | 40 | */ | 
| 41 | 41 |  function argsOf($data) { | 
| 42 | -    return F\map(function($tag){ | |
| 42 | +    return F\map(function($tag) { | |
| 43 | 43 | return (object) [ | 
| 44 | 44 | 'type' => $tag->name, | 
| 45 | 45 | 'name' => $tag->description | 
| @@ -50,7 +50,7 @@ discard block | ||
| 50 | 50 | // Extracts signatures of a function. | 
| 51 | 51 | // Object -> [String] | 
| 52 | 52 |  function signaturesOf($data) { | 
| 53 | -    return F\map(function($tag){ | |
| 53 | +    return F\map(function($tag) { | |
| 54 | 54 | return $tag->string; | 
| 55 | 55 |      }, tags('signature', $data)); | 
| 56 | 56 | } | 
| @@ -124,7 +124,7 @@ discard block | ||
| 124 | 124 | // Get a markdown code block | 
| 125 | 125 | // String -> String -> String | 
| 126 | 126 |  function code($lang, $text) { | 
| 127 | - if(trim($text) == '') | |
| 127 | + if (trim($text) == '') | |
| 128 | 128 | return ''; | 
| 129 | 129 |      return "```{$lang}\n{$text}\n```"; | 
| 130 | 130 | } | 
| @@ -138,7 +138,7 @@ discard block | ||
| 138 | 138 |          $args = F\map(function($arg) { | 
| 139 | 139 | return $arg->type . ' ' . $arg->name; | 
| 140 | 140 | }, $fn->args); | 
| 141 | -        $proto = $fn->name . '('. F\join(', ', $args) .') : ' . $fn->return; | |
| 141 | +        $proto = $fn->name . '(' . F\join(', ', $args) . ') : ' . $fn->return; | |
| 142 | 142 |          return F\join("\n\n", [ | 
| 143 | 143 |              "## {$fn->name}", | 
| 144 | 144 |              code('php', $proto), | 
| @@ -153,11 +153,11 @@ discard block | ||
| 153 | 153 |  function addContents() { | 
| 154 | 154 |      $addContents = function($name, $parts) { | 
| 155 | 155 |          $names = F\filter(F\notEq($name), F\map(F\value('name'), $parts)); | 
| 156 | -        $contents = F\map(function ($partname) use($name) { | |
| 156 | +        $contents = F\map(function($partname) use($name) { | |
| 157 | 157 |              $link = URL . "/docs/{$name}.md#{$partname}"; | 
| 158 | 158 |              return "- [{$partname}]($link)"; | 
| 159 | 159 | }, $names); | 
| 160 | -        file_put_contents ("docs/README.md", | |
| 160 | +        file_put_contents("docs/README.md", | |
| 161 | 161 |              F\join("\n\n", F\concat(["## {$name}"], $contents)) . "\n\n" | 
| 162 | 162 | , FILE_APPEND); | 
| 163 | 163 |          return array_merge(['# ' . $name, '## Table Of Contents'], $contents, F\map(F\value('md'), $parts)); | 
| @@ -169,10 +169,10 @@ discard block | ||
| 169 | 169 |  function generateModule($file) { | 
| 170 | 170 | $content = F\pipe( | 
| 171 | 171 |          F\map('Demo\\block'), | 
| 172 | -        F\filter(function($block){ | |
| 172 | +        F\filter(function($block) { | |
| 173 | 173 | return $block->type == 'function' && !$block->is_internal; | 
| 174 | 174 | }), | 
| 175 | -        F\map(function($block){ | |
| 175 | +        F\map(function($block) { | |
| 176 | 176 | return [ | 
| 177 | 177 | 'name' => $block->name, | 
| 178 | 178 | 'md' => markdown($block) | 
| @@ -182,7 +182,7 @@ discard block | ||
| 182 | 182 |          F\join("\n\n") | 
| 183 | 183 | ); | 
| 184 | 184 | |
| 185 | - file_put_contents ( | |
| 185 | + file_put_contents( | |
| 186 | 186 | F\replace(['src', '.php'], ['docs', '.md'], $file), | 
| 187 | 187 |          $content(json_decode(shell_exec("dox -r < {$file}"))) | 
| 188 | 188 | ); | 
| @@ -193,7 +193,7 @@ discard block | ||
| 193 | 193 |  function generateClass($name) { | 
| 194 | 194 | $content = F\pipe( | 
| 195 | 195 |          F\map('Demo\\block'), | 
| 196 | -        F\filter(function($block){ | |
| 196 | +        F\filter(function($block) { | |
| 197 | 197 | return in_array($block->type, ['method', 'class']) && !$block->is_internal; | 
| 198 | 198 | }), | 
| 199 | 199 |          f\map(function($block) use ($name) { | 
| @@ -202,7 +202,7 @@ discard block | ||
| 202 | 202 | } | 
| 203 | 203 | return $block; | 
| 204 | 204 | }), | 
| 205 | -        F\map(function($block){ | |
| 205 | +        F\map(function($block) { | |
| 206 | 206 | return [ | 
| 207 | 207 | 'name' => $block->name, | 
| 208 | 208 | 'md' => markdown($block) | 
| @@ -212,7 +212,7 @@ discard block | ||
| 212 | 212 |          F\join("\n\n") | 
| 213 | 213 | ); | 
| 214 | 214 | |
| 215 | - file_put_contents ( | |
| 215 | + file_put_contents( | |
| 216 | 216 |          "docs/{$name}.md", | 
| 217 | 217 |          $content(json_decode(shell_exec("dox -r < src/{$name}.php"))) | 
| 218 | 218 | ); | 
| @@ -220,7 +220,7 @@ discard block | ||
| 220 | 220 | |
| 221 | 221 | // The entry point | 
| 222 | 222 |  file_put_contents('docs/README.md', "# Reference Documentation \n\n"); | 
| 223 | -file_put_contents ("docs/README.md", "# Function Modules\n\n" , FILE_APPEND); | |
| 223 | +file_put_contents("docs/README.md", "# Function Modules\n\n", FILE_APPEND); | |
| 224 | 224 |  F\each('Demo\\generateModule', modules()); | 
| 225 | -file_put_contents ("docs/README.md", "# Containers\n\n" , FILE_APPEND); | |
| 225 | +file_put_contents("docs/README.md", "# Containers\n\n", FILE_APPEND); | |
| 226 | 226 |  F\each('Demo\\generateClass', ['Stream', 'Error']); | 
| @@ -11,8 +11,6 @@ discard block | ||
| 11 | 11 | * ``` | 
| 12 | 12 | * | 
| 13 | 13 | * @signature (a -> b) -> [a] -> [b] | 
| 14 | - * @param callable $fn | |
| 15 | - * @param array $list | |
| 16 | 14 | * @return array | 
| 17 | 15 | */ | 
| 18 | 16 |  function map() { | 
| @@ -31,8 +29,6 @@ discard block | ||
| 31 | 29 | * ``` | 
| 32 | 30 | * | 
| 33 | 31 | * @signature (a -> [b]) -> [a] -> [b] | 
| 34 | - * @param callable $fn | |
| 35 | - * @param array $list | |
| 36 | 32 | * @return array | 
| 37 | 33 | */ | 
| 38 | 34 |  function chain() { | 
| @@ -51,8 +47,6 @@ discard block | ||
| 51 | 47 | * $numeric($list) // [1, 3] | 
| 52 | 48 | * ``` | 
| 53 | 49 | * @signature (a -> Boolean) -> [a] -> [a] | 
| 54 | - * @param callable $fn | |
| 55 | - * @param array $list | |
| 56 | 50 | * @return array | 
| 57 | 51 | */ | 
| 58 | 52 |  function filter() { | 
| @@ -72,9 +66,6 @@ discard block | ||
| 72 | 66 | * ``` | 
| 73 | 67 | * | 
| 74 | 68 | * @signature (* -> a -> *) -> * -> [a] -> * | 
| 75 | - * @param callable $fn | |
| 76 | - * @param mixed $initial | |
| 77 | - * @param array $list | |
| 78 | 69 | * @return array | 
| 79 | 70 | */ | 
| 80 | 71 |  function reduce() { | 
| @@ -99,8 +90,6 @@ discard block | ||
| 99 | 90 | * ``` | 
| 100 | 91 | * | 
| 101 | 92 | * @signature (a -> *) -> [a] -> [a] | 
| 102 | - * @param callable $fn | |
| 103 | - * @param array $list | |
| 104 | 93 | * @return array | 
| 105 | 94 | */ | 
| 106 | 95 |  function each() { | 
| @@ -252,8 +241,6 @@ discard block | ||
| 252 | 241 | * ``` | 
| 253 | 242 | * | 
| 254 | 243 | * @signature (a -> Boolean) -> [a] -> Boolean | 
| 255 | - * @param callable $predicate | |
| 256 | - * @param array $list | |
| 257 | 244 | * @return bool | 
| 258 | 245 | */ | 
| 259 | 246 |  function all() { | 
| @@ -273,8 +260,6 @@ discard block | ||
| 273 | 260 | * ``` | 
| 274 | 261 | * | 
| 275 | 262 | * @signature (a -> Boolean) -> [a] -> Boolean | 
| 276 | - * @param callable $predicate | |
| 277 | - * @param array $list | |
| 278 | 263 | * @return bool | 
| 279 | 264 | */ | 
| 280 | 265 |  function any() { | 
| @@ -293,8 +278,6 @@ discard block | ||
| 293 | 278 | * | 
| 294 | 279 | * @signature [*] -> [*] -> [*] | 
| 295 | 280 | * @signature String -> String -> String | 
| 296 | - * @param array $list1 | |
| 297 | - * @param array $list2 | |
| 298 | 281 | * @return array | 
| 299 | 282 | */ | 
| 300 | 283 |  function concat() { | 
| @@ -314,7 +297,6 @@ discard block | ||
| 314 | 297 | * ``` | 
| 315 | 298 | * | 
| 316 | 299 | * @signature [[a]] -> [a] | 
| 317 | - * @param array $lists | |
| 318 | 300 | * @return array | 
| 319 | 301 | */ | 
| 320 | 302 |  function concatAll() { | 
| @@ -338,9 +320,6 @@ discard block | ||
| 338 | 320 | * | 
| 339 | 321 | * @signature Number -> a -> [a] -> [a] | 
| 340 | 322 | * @signature Number -> String -> String -> String | 
| 341 | - * @param int $position | |
| 342 | - * @param mixed $item | |
| 343 | - * @param array $list | |
| 344 | 323 | * @return array | 
| 345 | 324 | */ | 
| 346 | 325 |  function insert() { | 
| @@ -365,9 +344,6 @@ discard block | ||
| 365 | 344 | * | 
| 366 | 345 | * @signature Number -> [a] -> [a] -> [a] | 
| 367 | 346 | * @signature Number -> String -> String -> String | 
| 368 | - * @param int $position | |
| 369 | - * @param mixed $items | |
| 370 | - * @param array $list | |
| 371 | 347 | * @return array | 
| 372 | 348 | */ | 
| 373 | 349 |  function insertAll() { | 
| @@ -388,8 +364,6 @@ discard block | ||
| 388 | 364 | * | 
| 389 | 365 | * @signature * -> [*] -> [*] | 
| 390 | 366 | * @signature String -> String -> String | 
| 391 | - * @param mixed $item | |
| 392 | - * @param array $list | |
| 393 | 367 | * @return array | 
| 394 | 368 | */ | 
| 395 | 369 |  function append() { | 
| @@ -409,8 +383,6 @@ discard block | ||
| 409 | 383 | * | 
| 410 | 384 | * @signature a -> [a] -> [a] | 
| 411 | 385 | * @signature String -> String -> String | 
| 412 | - * @param mixed $item | |
| 413 | - * @param array $list | |
| 414 | 386 | * @return array | 
| 415 | 387 | */ | 
| 416 | 388 |  function prepend() { | 
| @@ -431,8 +403,6 @@ discard block | ||
| 431 | 403 | * | 
| 432 | 404 | * @signature Number -> [a] -> [a] | 
| 433 | 405 | * @signature Number -> String -> String | 
| 434 | - * @param int $count | |
| 435 | - * @param array $list | |
| 436 | 406 | * @return array | 
| 437 | 407 | */ | 
| 438 | 408 |  function take() { | 
| @@ -461,8 +431,6 @@ discard block | ||
| 461 | 431 | * ``` | 
| 462 | 432 | * | 
| 463 | 433 | * @signature (a -> Boolean) -> [a] -> [a] | 
| 464 | - * @param callable $predicate | |
| 465 | - * @param array $list | |
| 466 | 434 | * @return array | 
| 467 | 435 | */ | 
| 468 | 436 |  function takeWhile() { | 
| @@ -485,8 +453,6 @@ discard block | ||
| 485 | 453 | * ``` | 
| 486 | 454 | * | 
| 487 | 455 | * @signature (a -> Boolean) -> [a] -> [a] | 
| 488 | - * @param callable $predicate | |
| 489 | - * @param array $list | |
| 490 | 456 | * @return array | 
| 491 | 457 | */ | 
| 492 | 458 |  function takeLastWhile() { | 
| @@ -510,8 +476,6 @@ discard block | ||
| 510 | 476 | * ``` | 
| 511 | 477 | * | 
| 512 | 478 | * @signature (a -> Boolean) -> [a] -> [a] | 
| 513 | - * @param callable $predicate | |
| 514 | - * @param array $list | |
| 515 | 479 | * @return array | 
| 516 | 480 | */ | 
| 517 | 481 |  function takeUntil() { | 
| @@ -530,8 +494,6 @@ discard block | ||
| 530 | 494 | * ``` | 
| 531 | 495 | * | 
| 532 | 496 | * @signature (a -> Boolean) -> [a] -> [a] | 
| 533 | - * @param callable $predicate | |
| 534 | - * @param array $list | |
| 535 | 497 | * @return array | 
| 536 | 498 | */ | 
| 537 | 499 |  function takeLastUntil() { | 
| @@ -556,8 +518,6 @@ discard block | ||
| 556 | 518 | * | 
| 557 | 519 | * @signature Number -> [a] -> [a] | 
| 558 | 520 | * @signature Number -> String -> String | 
| 559 | - * @param int $count | |
| 560 | - * @param array $list | |
| 561 | 521 | * @return array | 
| 562 | 522 | */ | 
| 563 | 523 |  function remove() { | 
| @@ -582,8 +542,6 @@ discard block | ||
| 582 | 542 | * ``` | 
| 583 | 543 | * | 
| 584 | 544 | * @signature (a -> Boolean) -> [a] -> [a] | 
| 585 | - * @param callable $predicate | |
| 586 | - * @param array $list | |
| 587 | 545 | * @return array | 
| 588 | 546 | */ | 
| 589 | 547 |  function removeWhile() { | 
| @@ -602,8 +560,6 @@ discard block | ||
| 602 | 560 | * ``` | 
| 603 | 561 | * | 
| 604 | 562 | * @signature (a -> Boolean) -> [a] -> [a] | 
| 605 | - * @param callable $predicate | |
| 606 | - * @param array $list | |
| 607 | 563 | * @return array | 
| 608 | 564 | */ | 
| 609 | 565 |  function removeLastWhile() { | 
| @@ -624,8 +580,6 @@ discard block | ||
| 624 | 580 | * ``` | 
| 625 | 581 | * | 
| 626 | 582 | * @signature (a -> Boolean) -> [a] -> [a] | 
| 627 | - * @param callable $predicate | |
| 628 | - * @param array $list | |
| 629 | 583 | * @return array | 
| 630 | 584 | */ | 
| 631 | 585 |  function removeUntil() { | 
| @@ -645,8 +599,6 @@ discard block | ||
| 645 | 599 | * ``` | 
| 646 | 600 | * | 
| 647 | 601 | * @signature (a -> Boolean) -> [a] -> [a] | 
| 648 | - * @param callable $predicate | |
| 649 | - * @param array $list | |
| 650 | 602 | * @return array | 
| 651 | 603 | */ | 
| 652 | 604 |  function removeLastUntil() { | 
| @@ -663,7 +615,6 @@ discard block | ||
| 663 | 615 | * ``` | 
| 664 | 616 | * | 
| 665 | 617 |   * @signature [(k, v)] -> {k: v} | 
| 666 | - * @param array $pairs | |
| 667 | 618 | * @return stdClass | 
| 668 | 619 | */ | 
| 669 | 620 |  function fromPairs() { | 
| @@ -689,8 +640,6 @@ discard block | ||
| 689 | 640 | * | 
| 690 | 641 | * @signature Number -> [a] -> [[a]] | 
| 691 | 642 | * @signature Number -> String -> [String] | 
| 692 | - * @param int $size | |
| 693 | - * @param array $list | |
| 694 | 643 | * @return array | 
| 695 | 644 | */ | 
| 696 | 645 |  function slices() { | 
| @@ -715,8 +664,6 @@ discard block | ||
| 715 | 664 | * | 
| 716 | 665 | * @signature a -> [a] -> Boolean | 
| 717 | 666 | * @signature String -> String -> Boolean | 
| 718 | - * @param mixed $item | |
| 719 | - * @param array|string $list | |
| 720 | 667 | * @return bool | 
| 721 | 668 | */ | 
| 722 | 669 |  function contains() { | 
| @@ -737,8 +684,6 @@ discard block | ||
| 737 | 684 | * | 
| 738 | 685 | * @signature (a -> Boolean) -> [a] -> Maybe(Number) | 
| 739 | 686 |   * @signature (v -> Boolean) -> {k: v} -> Maybe(k) | 
| 740 | - * @param callable $predicate | |
| 741 | - * @param array $list | |
| 742 | 687 | * @return mixed | 
| 743 | 688 | */ | 
| 744 | 689 |  function findIndex() { | 
| @@ -763,8 +708,6 @@ discard block | ||
| 763 | 708 | * | 
| 764 | 709 | * @signature (a -> Boolean) -> [a] -> Maybe(Number) | 
| 765 | 710 |   * @signature (v -> Boolean) -> {k: v} -> Maybe(k) | 
| 766 | - * @param callable $predicate | |
| 767 | - * @param array $list | |
| 768 | 711 | * @return mixed | 
| 769 | 712 | */ | 
| 770 | 713 |  function findLastIndex() { | 
| @@ -787,8 +730,6 @@ discard block | ||
| 787 | 730 | * ``` | 
| 788 | 731 | * | 
| 789 | 732 | * @signature (a -> Boolean) -> [a] -> Maybe(a) | 
| 790 | - * @param callable $predicate | |
| 791 | - * @param array $list | |
| 792 | 733 | * @return mixed | 
| 793 | 734 | */ | 
| 794 | 735 |  function find() { | 
| @@ -807,8 +748,6 @@ discard block | ||
| 807 | 748 | * ``` | 
| 808 | 749 | * | 
| 809 | 750 | * @signature (a -> Boolean) -> [a] -> Maybe(a) | 
| 810 | - * @param callable $predicate | |
| 811 | - * @param array $list | |
| 812 | 751 | * @return mixed | 
| 813 | 752 | */ | 
| 814 | 753 |  function findLast() { | 
| @@ -834,8 +773,6 @@ discard block | ||
| 834 | 773 | * @signature a -> [a] -> Maybe(Number) | 
| 835 | 774 |   * @signature v -> {k: v} -> Maybe(k) | 
| 836 | 775 | * @signature String -> String -> Maybe(Number) | 
| 837 | - * @param mixed $item | |
| 838 | - * @param array $list | |
| 839 | 776 | * @return int | 
| 840 | 777 | */ | 
| 841 | 778 |  function indexOf() { | 
| @@ -863,8 +800,6 @@ discard block | ||
| 863 | 800 | * | 
| 864 | 801 | * @signature a -> [a] -> Number | 
| 865 | 802 | * @signature String -> String -> Number | 
| 866 | - * @param mixed $item | |
| 867 | - * @param array $list | |
| 868 | 803 | * @return int | 
| 869 | 804 | */ | 
| 870 | 805 |  function lastIndexOf() { | 
| @@ -888,8 +823,6 @@ discard block | ||
| 888 | 823 | * ``` | 
| 889 | 824 | * | 
| 890 | 825 | * @signature (a -> a -> Boolean) -> [a] -> [a] | 
| 891 | - * @param callable $areEqual | |
| 892 | - * @param array $list | |
| 893 | 826 | * @return array | 
| 894 | 827 | */ | 
| 895 | 828 |  function uniqueBy() { | 
| @@ -917,7 +850,6 @@ discard block | ||
| 917 | 850 | * ``` | 
| 918 | 851 | * | 
| 919 | 852 | * @signature [a] -> [a] | 
| 920 | - * @param array $list | |
| 921 | 853 | * @return array | 
| 922 | 854 | */ | 
| 923 | 855 |  function unique() { | 
| @@ -951,8 +883,6 @@ discard block | ||
| 951 | 883 | * ``` | 
| 952 | 884 | * | 
| 953 | 885 |   * @signature (a -> String) -> [a] -> {String: a} | 
| 954 | - * @param callable $fn | |
| 955 | - * @param array $list | |
| 956 | 886 | * @return array | 
| 957 | 887 | */ | 
| 958 | 888 |  function groupBy() { | 
| @@ -56,7 +56,7 @@ discard block | ||
| 56 | 56 | * @return array | 
| 57 | 57 | */ | 
| 58 | 58 |  function filter() { | 
| 59 | -    $filter = function($fn, $list){ | |
| 59 | +    $filter = function($fn, $list) { | |
| 60 | 60 | return array_values(array_filter($list, $fn)); | 
| 61 | 61 | }; | 
| 62 | 62 | return apply(curry($filter), func_get_args()); | 
| @@ -78,7 +78,7 @@ discard block | ||
| 78 | 78 | * @return array | 
| 79 | 79 | */ | 
| 80 | 80 |  function reduce() { | 
| 81 | -    $reduce = function($fn, $initial, $list){ | |
| 81 | +    $reduce = function($fn, $initial, $list) { | |
| 82 | 82 | return array_reduce($list, $fn, $initial); | 
| 83 | 83 | }; | 
| 84 | 84 | return apply(curry($reduce), func_get_args()); | 
| @@ -104,7 +104,7 @@ discard block | ||
| 104 | 104 | * @return array | 
| 105 | 105 | */ | 
| 106 | 106 |  function each() { | 
| 107 | -    $each = function($fn, $list){ | |
| 107 | +    $each = function($fn, $list) { | |
| 108 | 108 |          foreach ($list as $item) { | 
| 109 | 109 | apply($fn, [$item]); | 
| 110 | 110 | } | 
| @@ -128,7 +128,7 @@ discard block | ||
| 128 | 128 | * @return mixed | 
| 129 | 129 | */ | 
| 130 | 130 |  function head($list) { | 
| 131 | - if(is_string($list)) | |
| 131 | + if (is_string($list)) | |
| 132 | 132 | return substr($list, 0, 1); | 
| 133 | 133 | return (count($list) > 0) | 
| 134 | 134 | ? $list[0] | 
| @@ -150,7 +150,7 @@ discard block | ||
| 150 | 150 | * @return mixed | 
| 151 | 151 | */ | 
| 152 | 152 |  function last($list) { | 
| 153 | - if(is_string($list)) | |
| 153 | + if (is_string($list)) | |
| 154 | 154 | return substr($list, -1); | 
| 155 | 155 | return (count($list) > 0) | 
| 156 | 156 | ? $list[count($list) - 1] | 
| @@ -173,7 +173,7 @@ discard block | ||
| 173 | 173 | * @return array | 
| 174 | 174 | */ | 
| 175 | 175 |  function init($list) { | 
| 176 | - if(is_string($list)) | |
| 176 | + if (is_string($list)) | |
| 177 | 177 | return (strlen($list) > 1) | 
| 178 | 178 | ? substr($list, 0, strlen($list) - 1) | 
| 179 | 179 | : ''; | 
| @@ -198,7 +198,7 @@ discard block | ||
| 198 | 198 | * @return array | 
| 199 | 199 | */ | 
| 200 | 200 |  function tail($list) { | 
| 201 | - if(is_string($list)) | |
| 201 | + if (is_string($list)) | |
| 202 | 202 | return (strlen($list) > 1) | 
| 203 | 203 | ? substr($list, 1) | 
| 204 | 204 | : ''; | 
| @@ -322,8 +322,7 @@ discard block | ||
| 322 | 322 | */ | 
| 323 | 323 |  function concatAll() { | 
| 324 | 324 |      $concatAll = function($lists) { | 
| 325 | - return length($lists) == 0 ? [] : | |
| 326 | - reduce(concat(), head($lists), tail($lists)); | |
| 325 | + return length($lists) == 0 ? [] : reduce(concat(), head($lists), tail($lists)); | |
| 327 | 326 | }; | 
| 328 | 327 | return apply(curry($concatAll), func_get_args()); | 
| 329 | 328 | } | 
| @@ -402,7 +401,7 @@ discard block | ||
| 402 | 401 | * @return array | 
| 403 | 402 | */ | 
| 404 | 403 |  function append() { | 
| 405 | -    $append = function ($item, $list) { | |
| 404 | +    $append = function($item, $list) { | |
| 406 | 405 | return insert(length($list), $item, $list); | 
| 407 | 406 | }; | 
| 408 | 407 | return apply(curry($append), func_get_args()); | 
| @@ -449,7 +448,7 @@ discard block | ||
| 449 | 448 | $length = length($list); | 
| 450 | 449 | if ($count > $length || $count < -$length) | 
| 451 | 450 | return []; | 
| 452 | -        if(is_string($list)) { | |
| 451 | +        if (is_string($list)) { | |
| 453 | 452 | return ($count >= 0) | 
| 454 | 453 | ? substr($list, 0, $count) | 
| 455 | 454 | : substr($list, $count); | 
| @@ -705,9 +704,9 @@ discard block | ||
| 705 | 704 | */ | 
| 706 | 705 |  function slices() { | 
| 707 | 706 |      $slices = function($size, $list) { | 
| 708 | - if(empty($list)) | |
| 707 | + if (empty($list)) | |
| 709 | 708 | return is_string($list) ? '' : []; | 
| 710 | - if(length($list) <= $size) | |
| 709 | + if (length($list) <= $size) | |
| 711 | 710 | return [$list]; | 
| 712 | 711 | return prepend(take($size, $list), slices($size, remove($size, $list))); | 
| 713 | 712 | }; | 
| @@ -731,7 +730,7 @@ discard block | ||
| 731 | 730 | */ | 
| 732 | 731 |  function contains() { | 
| 733 | 732 |      $contains = function($item, $list) { | 
| 734 | - return -1 != indexOf($item, $list); | |
| 733 | + return - 1 != indexOf($item, $list); | |
| 735 | 734 | }; | 
| 736 | 735 | return apply(curry($contains), func_get_args()); | 
| 737 | 736 | } | 
| @@ -780,7 +779,7 @@ discard block | ||
| 780 | 779 |  function findLastIndex() { | 
| 781 | 780 |      $findLastIndex = function($predicate, $list) { | 
| 782 | 781 |          foreach (reverse(toPairs($list)) as $pair) { | 
| 783 | - if($predicate($pair[1])) | |
| 782 | + if ($predicate($pair[1])) | |
| 784 | 783 | return $pair[0]; | 
| 785 | 784 | } | 
| 786 | 785 | return null; | 
| @@ -857,7 +856,7 @@ discard block | ||
| 857 | 856 | $index = findIndex(equals($item), $list); | 
| 858 | 857 | } | 
| 859 | 858 | return (false === $index || null === $index) | 
| 860 | - ? -1 | |
| 859 | + ? - 1 | |
| 861 | 860 | : $index; | 
| 862 | 861 | }; | 
| 863 | 862 | return apply(curry($indexOf), func_get_args()); | 
| @@ -887,7 +886,7 @@ discard block | ||
| 887 | 886 | $index = findLastIndex(equals($item), $list); | 
| 888 | 887 | } | 
| 889 | 888 | return (false === $index || null === $index) | 
| 890 | - ? -1 | |
| 889 | + ? - 1 | |
| 891 | 890 | : $index; | 
| 892 | 891 | }; | 
| 893 | 892 | return apply(curry($lastIndexOf), func_get_args()); | 
| @@ -972,7 +971,7 @@ discard block | ||
| 972 | 971 |      $groupBy = function($fn, $list) { | 
| 973 | 972 |          return reduce(function($result, $item) use($fn) { | 
| 974 | 973 | $index = $fn($item); | 
| 975 | - if (! isset($result[$index])) | |
| 974 | + if (!isset($result[$index])) | |
| 976 | 975 | $result[$index] = []; | 
| 977 | 976 | $result[$index][] = $item; | 
| 978 | 977 | return $result; | 
| @@ -8,8 +8,6 @@ discard block | ||
| 8 | 8 | * Returns `$a && $b`. | 
| 9 | 9 | * | 
| 10 | 10 | * @signature Boolean -> Boolean -> Boolean | 
| 11 | - * @param bool $a | |
| 12 | - * @param bool $b | |
| 13 | 11 | * @return bool | 
| 14 | 12 | */ | 
| 15 | 13 |  function and_() { | 
| @@ -22,8 +20,6 @@ discard block | ||
| 22 | 20 | * Returns `$a || $b`. | 
| 23 | 21 | * | 
| 24 | 22 | * @signature Boolean -> Boolean -> Boolean | 
| 25 | - * @param bool $a | |
| 26 | - * @param bool $b | |
| 27 | 23 | * @return bool | 
| 28 | 24 | */ | 
| 29 | 25 |  function or_() { | 
| @@ -36,7 +32,6 @@ discard block | ||
| 36 | 32 | * Returns `!$x`. | 
| 37 | 33 | * | 
| 38 | 34 | * @signature Boolean -> Boolean | 
| 39 | - * @param bool $x | |
| 40 | 35 | * @return bool | 
| 41 | 36 | */ | 
| 42 | 37 |  function not() { | 
| @@ -50,8 +45,6 @@ discard block | ||
| 50 | 45 | * Returns `$x == $y`. | 
| 51 | 46 | * | 
| 52 | 47 | * @signature * -> * -> Boolean | 
| 53 | - * @param mixed $a | |
| 54 | - * @param mixed $b | |
| 55 | 48 | * @return bool | 
| 56 | 49 | */ | 
| 57 | 50 |  function eq() { | 
| @@ -64,8 +57,6 @@ discard block | ||
| 64 | 57 | * Returns `$x != $y`. | 
| 65 | 58 | * | 
| 66 | 59 | * @signature * -> * -> Boolean | 
| 67 | - * @param mixed $a | |
| 68 | - * @param mixed $b | |
| 69 | 60 | * @return bool | 
| 70 | 61 | */ | 
| 71 | 62 |  function notEq() { | 
| @@ -78,8 +69,6 @@ discard block | ||
| 78 | 69 | * Returns `$x === $y`. | 
| 79 | 70 | * | 
| 80 | 71 | * @signature * -> * -> Boolean | 
| 81 | - * @param mixed $a | |
| 82 | - * @param mixed $b | |
| 83 | 72 | * @return bool | 
| 84 | 73 | */ | 
| 85 | 74 |  function eqq() { | 
| @@ -92,8 +81,6 @@ discard block | ||
| 92 | 81 | * Returns `$x !== $y`. | 
| 93 | 82 | * | 
| 94 | 83 | * @signature * -> * -> Boolean | 
| 95 | - * @param mixed $a | |
| 96 | - * @param mixed $b | |
| 97 | 84 | * @return bool | 
| 98 | 85 | */ | 
| 99 | 86 |  function notEqq() { | 
| @@ -118,8 +105,6 @@ discard block | ||
| 118 | 105 | * ``` | 
| 119 | 106 | * | 
| 120 | 107 | * @signature * -> * -> Boolean | 
| 121 | - * @param mixed $a | |
| 122 | - * @param mixed $b | |
| 123 | 108 | * @return bool | 
| 124 | 109 | */ | 
| 125 | 110 |  function equals() { | 
| @@ -157,8 +142,6 @@ discard block | ||
| 157 | 142 | * Returns `$a < $b`. | 
| 158 | 143 | * | 
| 159 | 144 | * @signature * -> * -> Boolean | 
| 160 | - * @param mixed $a | |
| 161 | - * @param mixed $b | |
| 162 | 145 | * @return bool | 
| 163 | 146 | */ | 
| 164 | 147 |  function lt() { | 
| @@ -171,8 +154,6 @@ discard block | ||
| 171 | 154 | * Returns `$a <= $b`. | 
| 172 | 155 | * | 
| 173 | 156 | * @signature * -> * -> Boolean | 
| 174 | - * @param mixed $a | |
| 175 | - * @param mixed $b | |
| 176 | 157 | * @return bool | 
| 177 | 158 | */ | 
| 178 | 159 |  function lte() { | 
| @@ -185,8 +166,6 @@ discard block | ||
| 185 | 166 | * Returns `$a > $b`. | 
| 186 | 167 | * | 
| 187 | 168 | * @signature * -> * -> Boolean | 
| 188 | - * @param mixed $a | |
| 189 | - * @param mixed $b | |
| 190 | 169 | * @return bool | 
| 191 | 170 | */ | 
| 192 | 171 |  function gt() { | 
| @@ -199,8 +178,6 @@ discard block | ||
| 199 | 178 | * Returns `$a >= $b`. | 
| 200 | 179 | * | 
| 201 | 180 | * @signature * -> * -> Boolean | 
| 202 | - * @param mixed $a | |
| 203 | - * @param mixed $b | |
| 204 | 181 | * @return bool | 
| 205 | 182 | */ | 
| 206 | 183 |  function gte() { | 
| @@ -13,7 +13,7 @@ discard block | ||
| 13 | 13 | * @return bool | 
| 14 | 14 | */ | 
| 15 | 15 |  function and_() { | 
| 16 | -    return apply(curry(function($a, $b){ | |
| 16 | +    return apply(curry(function($a, $b) { | |
| 17 | 17 | return $a && $b; | 
| 18 | 18 | }), func_get_args()); | 
| 19 | 19 | } | 
| @@ -27,7 +27,7 @@ discard block | ||
| 27 | 27 | * @return bool | 
| 28 | 28 | */ | 
| 29 | 29 |  function or_() { | 
| 30 | -    return apply(curry(function($a, $b){ | |
| 30 | +    return apply(curry(function($a, $b) { | |
| 31 | 31 | return $a || $b; | 
| 32 | 32 | }), func_get_args()); | 
| 33 | 33 | } | 
| @@ -55,7 +55,7 @@ discard block | ||
| 55 | 55 | * @return bool | 
| 56 | 56 | */ | 
| 57 | 57 |  function eq() { | 
| 58 | -    return apply(curry(function($a, $b){ | |
| 58 | +    return apply(curry(function($a, $b) { | |
| 59 | 59 | return $a == $b; | 
| 60 | 60 | }), func_get_args()); | 
| 61 | 61 | } | 
| @@ -69,7 +69,7 @@ discard block | ||
| 69 | 69 | * @return bool | 
| 70 | 70 | */ | 
| 71 | 71 |  function notEq() { | 
| 72 | -    return apply(curry(function($a, $b){ | |
| 72 | +    return apply(curry(function($a, $b) { | |
| 73 | 73 | return $a != $b; | 
| 74 | 74 | }), func_get_args()); | 
| 75 | 75 | } | 
| @@ -83,7 +83,7 @@ discard block | ||
| 83 | 83 | * @return bool | 
| 84 | 84 | */ | 
| 85 | 85 |  function eqq() { | 
| 86 | -    return apply(curry(function($a, $b){ | |
| 86 | +    return apply(curry(function($a, $b) { | |
| 87 | 87 | return $a === $b; | 
| 88 | 88 | }), func_get_args()); | 
| 89 | 89 | } | 
| @@ -97,7 +97,7 @@ discard block | ||
| 97 | 97 | * @return bool | 
| 98 | 98 | */ | 
| 99 | 99 |  function notEqq() { | 
| 100 | -    return apply(curry(function($a, $b){ | |
| 100 | +    return apply(curry(function($a, $b) { | |
| 101 | 101 | return $a !== $b; | 
| 102 | 102 | }), func_get_args()); | 
| 103 | 103 | } | 
| @@ -140,9 +140,7 @@ discard block | ||
| 140 | 140 | return $a == $b; | 
| 141 | 141 | case 'List': | 
| 142 | 142 | $length = length($a); | 
| 143 | - return length($b) != $length ? false : | |
| 144 | - 0 == $length ? true : | |
| 145 | - equals(head($a), head($b)) && equals(tail($a), tail($b)); | |
| 143 | + return length($b) != $length ? false : 0 == $length ? true : equals(head($a), head($b)) && equals(tail($a), tail($b)); | |
| 146 | 144 | case 'Array': | 
| 147 | 145 | case 'ArrayObject': | 
| 148 | 146 | case 'Object': | 
| @@ -162,7 +160,7 @@ discard block | ||
| 162 | 160 | * @return bool | 
| 163 | 161 | */ | 
| 164 | 162 |  function lt() { | 
| 165 | -    return apply(curry(function($a, $b){ | |
| 163 | +    return apply(curry(function($a, $b) { | |
| 166 | 164 | return $a < $b; | 
| 167 | 165 | }), func_get_args()); | 
| 168 | 166 | } | 
| @@ -176,7 +174,7 @@ discard block | ||
| 176 | 174 | * @return bool | 
| 177 | 175 | */ | 
| 178 | 176 |  function lte() { | 
| 179 | -    return apply(curry(function($a, $b){ | |
| 177 | +    return apply(curry(function($a, $b) { | |
| 180 | 178 | return $a <= $b; | 
| 181 | 179 | }), func_get_args()); | 
| 182 | 180 | } | 
| @@ -190,7 +188,7 @@ discard block | ||
| 190 | 188 | * @return bool | 
| 191 | 189 | */ | 
| 192 | 190 |  function gt() { | 
| 193 | -    return apply(curry(function($a, $b){ | |
| 191 | +    return apply(curry(function($a, $b) { | |
| 194 | 192 | return $a > $b; | 
| 195 | 193 | }), func_get_args()); | 
| 196 | 194 | } | 
| @@ -204,7 +202,7 @@ discard block | ||
| 204 | 202 | * @return bool | 
| 205 | 203 | */ | 
| 206 | 204 |  function gte() { | 
| 207 | -    return apply(curry(function($a, $b){ | |
| 205 | +    return apply(curry(function($a, $b) { | |
| 208 | 206 | return $a >= $b; | 
| 209 | 207 | }), func_get_args()); | 
| 210 | 208 | } | 
| @@ -155,7 +155,7 @@ discard block | ||
| 155 | 155 | * @return bool | 
| 156 | 156 | */ | 
| 157 | 157 |  function has() { | 
| 158 | -    $has = function($name, $object){ | |
| 158 | +    $has = function($name, $object) { | |
| 159 | 159 | return contains($name, keys($object)); | 
| 160 | 160 | }; | 
| 161 | 161 | return apply(curry($has), func_get_args()); | 
| @@ -185,7 +185,7 @@ discard block | ||
| 185 | 185 | * @return mixed | 
| 186 | 186 | */ | 
| 187 | 187 |  function get() { | 
| 188 | -    $get = function($name, $object){ | |
| 188 | +    $get = function($name, $object) { | |
| 189 | 189 | $object = attributes($object); | 
| 190 | 190 | return has($name, $object) | 
| 191 | 191 | ? $object[$name] | 
| @@ -213,7 +213,7 @@ discard block | ||
| 213 | 213 | * @return mixed | 
| 214 | 214 | */ | 
| 215 | 215 |  function getPath() { | 
| 216 | -    $getPath = function($path, $object){ | |
| 216 | +    $getPath = function($path, $object) { | |
| 217 | 217 | |
| 218 | 218 | }; | 
| 219 | 219 | return apply(curry($getPath), func_get_args()); | 
| @@ -19,7 +19,6 @@ discard block | ||
| 19 | 19 | * ``` | 
| 20 | 20 | * | 
| 21 | 21 | * @signature a -> a | 
| 22 | - * @param mixed $value | |
| 23 | 22 | * @return mixed | 
| 24 | 23 | */ | 
| 25 | 24 |  function clone_() { | 
| @@ -67,7 +66,6 @@ discard block | ||
| 67 | 66 | * ``` | 
| 68 | 67 | * | 
| 69 | 68 |   * @signature {k: v} -> {k: v} | 
| 70 | - * @param object $object | |
| 71 | 69 | * @return array | 
| 72 | 70 | */ | 
| 73 | 71 |  function attributes() { | 
| @@ -143,8 +141,6 @@ discard block | ||
| 143 | 141 | * ``` | 
| 144 | 142 | * | 
| 145 | 143 |   * @signature k -> {k: v} -> Boolean | 
| 146 | - * @param string|int $name | |
| 147 | - * @param mixed $object | |
| 148 | 144 | * @return bool | 
| 149 | 145 | */ | 
| 150 | 146 |  function has() { | 
| @@ -173,8 +169,6 @@ discard block | ||
| 173 | 169 | * ``` | 
| 174 | 170 | * | 
| 175 | 171 |   * @signature k -> {k: v} -> Maybe(v) | 
| 176 | - * @param string $name | |
| 177 | - * @param array $object | |
| 178 | 172 | * @return mixed | 
| 179 | 173 | */ | 
| 180 | 174 |  function get() { | 
| @@ -201,8 +195,6 @@ discard block | ||
| 201 | 195 | * ``` | 
| 202 | 196 | * | 
| 203 | 197 |   * @signature [k] -> {k: v} -> v | 
| 204 | - * @param array $path | |
| 205 | - * @param mixed $object | |
| 206 | 198 | * @return mixed | 
| 207 | 199 | */ | 
| 208 | 200 |  function getPath() { | 
| @@ -229,9 +221,6 @@ discard block | ||
| 229 | 221 | * ``` | 
| 230 | 222 | * | 
| 231 | 223 |   * @signature k -> v -> {k: v} -> {k: v} | 
| 232 | - * @param string|int $name | |
| 233 | - * @param mixed $value | |
| 234 | - * @param mixed $object | |
| 235 | 224 | * @return mixed | 
| 236 | 225 | */ | 
| 237 | 226 |  function set() { | 
| @@ -258,9 +247,6 @@ discard block | ||
| 258 | 247 | * ``` | 
| 259 | 248 | * | 
| 260 | 249 |   * @signature (a -> Boolean) -> k -> {k : a} -> Boolean | 
| 261 | - * @param callable $predicate | |
| 262 | - * @param string|int $key | |
| 263 | - * @param mixed $object | |
| 264 | 250 | * @return bool | 
| 265 | 251 | */ | 
| 266 | 252 |  function satisfies() { | 
| @@ -294,8 +280,6 @@ discard block | ||
| 294 | 280 | * ``` | 
| 295 | 281 | * | 
| 296 | 282 |   * @signature {String: (a -> Boolean)} -> {k : a} -> Boolean | 
| 297 | - * @param array $predicates | |
| 298 | - * @param mixed $object | |
| 299 | 283 | * @return bool | 
| 300 | 284 | */ | 
| 301 | 285 |  function satisfiesAll() { | 
| @@ -335,8 +319,6 @@ discard block | ||
| 335 | 319 | * ``` | 
| 336 | 320 | * | 
| 337 | 321 |   * @signature {String: (a -> Boolean)} -> {k : a} -> Boolean | 
| 338 | - * @param array $predicates | |
| 339 | - * @param mixed $object | |
| 340 | 322 | * @return bool | 
| 341 | 323 | */ | 
| 342 | 324 |  function satisfiesAny() { | 
| @@ -8,14 +8,14 @@ | ||
| 8 | 8 | */ | 
| 9 | 9 |  class Placeholder { | 
| 10 | 10 | private static $instance; | 
| 11 | -    private function __construct(){} | |
| 11 | +    private function __construct() {} | |
| 12 | 12 | public static function get() | 
| 13 | 13 |      { | 
| 14 | - if(static::$instance === null) | |
| 14 | + if (static::$instance === null) | |
| 15 | 15 | static::$instance = new Placeholder; | 
| 16 | 16 | return static::$instance; | 
| 17 | 17 | } | 
| 18 | -    public function __toString(){ | |
| 18 | +    public function __toString() { | |
| 19 | 19 | return '__'; | 
| 20 | 20 | } | 
| 21 | 21 | } | 
| @@ -28,8 +28,7 @@ discard block | ||
| 28 | 28 | */ | 
| 29 | 29 |  function _number_of_args($fn) { | 
| 30 | 30 | $reflector = is_array($fn) ? | 
| 31 | - new \ReflectionMethod($fn[0], $fn[1]) : | |
| 32 | - new \ReflectionFunction($fn); | |
| 31 | + new \ReflectionMethod($fn[0], $fn[1]) : new \ReflectionFunction($fn); | |
| 33 | 32 | return $reflector->getNumberOfRequiredParameters(); | 
| 34 | 33 | } | 
| 35 | 34 | |
| @@ -59,7 +58,7 @@ discard block | ||
| 59 | 58 |      $addArgument = function($currentBoundArgs, $arg) use($fnArgsCount) { | 
| 60 | 59 | $currentBoundArgsCount = count($currentBoundArgs); | 
| 61 | 60 | $placeholderPosition = 0; | 
| 62 | - while($placeholderPosition < $currentBoundArgsCount && !_is_placeholder($currentBoundArgs[$placeholderPosition])) | |
| 61 | + while ($placeholderPosition < $currentBoundArgsCount && !_is_placeholder($currentBoundArgs[$placeholderPosition])) | |
| 63 | 62 | $placeholderPosition ++; | 
| 64 | 63 |          if ($currentBoundArgsCount < $fnArgsCount || $placeholderPosition == $currentBoundArgsCount) { | 
| 65 | 64 | $currentBoundArgs[] = $arg; | 
| @@ -179,9 +178,9 @@ discard block | ||
| 179 | 178 | */ | 
| 180 | 179 |  function pipe() { | 
| 181 | 180 | $fns = func_get_args(); | 
| 182 | - if(count($fns) < 1) | |
| 181 | + if (count($fns) < 1) | |
| 183 | 182 |          throw new InvalidArgument("pipe() requires at least one argument"); | 
| 184 | -    return curry(function () use ($fns) { | |
| 183 | +    return curry(function() use ($fns) { | |
| 185 | 184 | $result = _apply(array_shift($fns), func_get_args()); | 
| 186 | 185 |          foreach ($fns as $fn) { | 
| 187 | 186 | $result = $fn($result); | 
| @@ -80,7 +80,7 @@ discard block | ||
| 80 | 80 | * @param callable $fn | 
| 81 | 81 | * @param int $argsCount | 
| 82 | 82 | * @param array $boundArgs | 
| 83 | - * @return callable | |
| 83 | + * @return \Closure | |
| 84 | 84 | */ | 
| 85 | 85 |  function _curried_function($fn, $argsCount, $boundArgs = []) { | 
| 86 | 86 |      return function() use($fn, $argsCount, $boundArgs) { | 
| @@ -152,8 +152,6 @@ discard block | ||
| 152 | 152 | * ``` | 
| 153 | 153 | * | 
| 154 | 154 | * @signature (*... -> a) -> [*] -> a | 
| 155 | - * @param callable $fn | |
| 156 | - * @param array $args | |
| 157 | 155 | * @return mixed | 
| 158 | 156 | */ | 
| 159 | 157 |  function apply() { | 
| @@ -174,7 +172,6 @@ discard block | ||
| 174 | 172 | * ``` | 
| 175 | 173 | * | 
| 176 | 174 | * @signature (((a, b, ...) -> o), (o -> p), ..., (y -> z)) -> ((a, b, ...) -> z) | 
| 177 | - * @param callable $fns... | |
| 178 | 175 | * @return callable | 
| 179 | 176 | */ | 
| 180 | 177 |  function pipe() { | 
| @@ -218,7 +215,6 @@ discard block | ||
| 218 | 215 | * ``` | 
| 219 | 216 | * | 
| 220 | 217 | * @signature a -> (* -> a) | 
| 221 | - * @param mixed $value | |
| 222 | 218 | * @return callable | 
| 223 | 219 | */ | 
| 224 | 220 |  function give() { | 
| @@ -245,8 +241,7 @@ discard block | ||
| 245 | 241 | * ``` | 
| 246 | 242 | * | 
| 247 | 243 | * @signature ((a -> Boolean), ..., (a -> Boolean)) -> (a -> Boolean) | 
| 248 | - * @param callable $predicates... | |
| 249 | - * @return callable | |
| 244 | + * @return \Closure | |
| 250 | 245 | */ | 
| 251 | 246 |  function all() { | 
| 252 | 247 | $predicates = func_get_args(); | 
| @@ -276,8 +271,7 @@ discard block | ||
| 276 | 271 | * ``` | 
| 277 | 272 | * | 
| 278 | 273 | * @signature ((a -> Boolean), ..., (a -> Boolean)) -> (a -> Boolean) | 
| 279 | - * @param callable $predicates... | |
| 280 | - * @return callable | |
| 274 | + * @return \Closure | |
| 281 | 275 | */ | 
| 282 | 276 |  function any() { | 
| 283 | 277 | $predicates = func_get_args(); |