16 lines
345 B
Nix
16 lines
345 B
Nix
{ lib, ... }:
|
|
with lib;
|
|
rec {
|
|
# Ternary operator
|
|
# Exaample:
|
|
# tern false 1 2 => 2
|
|
# tern true 1 2 => 1
|
|
tern = pred: x: y: if pred then x else y;
|
|
|
|
# Right-associate and chain following single-operand functions
|
|
# Example:
|
|
# right f g h 1 => f(g(h(1)))
|
|
right = f: g: tern (isFunction g)
|
|
(right (x: f (g (x))))
|
|
(f (g));
|
|
}
|