return $date->format(DATE_FORMAT);
}
+function ssort($comparitor) {
+ return function($array) use ($comparitor) {
+ uasort($array, uncurry($comparitor));
+ return $array;
+ };
+}
+
+function uncurry($f) {
+ return function($a, $b) use ($f) {
+ return $f($a)($b);
+ };
+}
+
const sendToGroupChat = 'sendToGroupChat';
function sendToGroupChat(string $message) {
return getTelegram()->sendMessage(['chat_id' => CHAT_ID, 'text' => $message]);
return $message['due']->diff(new DateTimeImmutable)->d == REMIND_THRESHOLD;
}
+const unlines = 'unlines';
+function unlines($lines) {
+ return implode("\n", $lines);
+}
+
+function field($field) {
+ return function($array) use ($field) {
+ return $array[$field];
+ };
+}
+
+const ⬄ = '⬄';
+function ⬄($a) {
+ return function($b) use ($a) {
+ return $a <=> $b;
+ };
+}
+
function ∘(...$fs) {
return function($arg) use ($fs) {
};
}
+function aaray_column($column) {
+ return function($array) use ($column) {
+ return array_column($array, $column);
+ };
+}
+
+function aaray_slice($start) {
+ return function($length) use ($start) {
+ return function($array) use ($length, $start) {
+ return array_slice($array, $start, $length);
+ };
+ };
+}
+
function filter($callable) {
return function($list) use ($callable) {
return array_filter($list, $callable);
};
}
+function f∘(callable $f) {
+ return function(callable $g) use ($f) {
+ return function($arg) use($g, $f) {
+ return $f($g($arg));
+ };
+ };
+}
+
+function ∘f(callable $f) {
+ return function(callable $g) use ($f) {
+ return function($arg) use($g, $f) {
+ return $g($f($arg));
+ };
+ };
+}
+
function ∪($a, $b) {
return array_merge($a, $b);
}