Guest User

Untitled

a guest
Jan 17th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. // dump array key -> value without noise
  2. function pprint($array) {
  3. echo "<pre style=\"background-color: #ddd;\">";
  4. print_r($array);
  5. echo "</pre>";
  6. }
  7.  
  8. function randomString($length) {
  9. if (gettype($length) !== 'integer') {
  10. $length = 30;
  11. }
  12. $string = base64_encode(openssl_random_pseudo_bytes($length));
  13. return $string;
  14. }
  15.  
  16. // [a] -> (a -> [b]) -> [b]
  17. function _flatMap($arr, callable $fn) {
  18. return array_merge([], ...array_map($fn, $arr));
  19. }
  20. function _flatMapK($arr, callable $fn) {
  21. return array_merge([], ...array_map($fn, array_keys($arr), $arr));
  22. }
  23.  
  24. // re-arranging parameters on FP-style built-in functions
  25.  
  26. // [a] -> (a -> b) -> [b]
  27. function _map($arr, callable $callback) {
  28. return array_map($callback, $arr);
  29. }
  30. // [v] -> (k -> v -> w) -> [w]
  31. function _mapK($arr, callable $callback) {
  32. return array_map($callback, array_keys($arr), $arr);
  33. }
  34.  
  35. // [a] -> (a -> bool) -> [a]
  36. function _filter($arr, callable $callback) {
  37. return array_filter($arr, $callback);
  38. }
  39. // [v] -> (k -> v -> bool) -> [v]
  40. function _filterK($arr, callable $callback) {
  41. return array_filter($arr, $callback, ARRAY_FILTER_USE_BOTH);
  42. }
  43.  
  44. // [a] -> b -> (b -> a -> b) -> [b]
  45. function _reduce($arr, $init, callable $callback) {
  46. return array_reduce($arr, $callback, $init);
  47. }
Add Comment
Please, Sign In to add comment