pipe
lib.trivial.pipe
Docs pulled from | This Revision | 9 minutes ago
Pipes a value through a list of functions, left to right.
Inputs
value
-
Value to start piping.
fns
-
List of functions to apply sequentially.
Type
pipe :: a -> [<functions>] -> <return type of last function>
Examples
lib.trivial.pipe
usage example
pipe 2 [
(x: x + 2) # 2 + 2 = 4
(x: x * 2) # 4 * 2 = 8
]
=> 8
# ideal to do text transformations
pipe [ "a/b" "a/c" ] [
# create the cp command
(map (file: ''cp "${src}/${file}" $out\n''))
# concatenate all commands into one string
lib.concatStrings
# make that string into a nix derivation
(pkgs.runCommand "copy-to-out" {})
]
=> <drv which copies all files to $out>
The output type of each function has to be the input type
of the next function, and the last function returns the
final value.
Noogle detected
Implementation
This function is implemented in c++ and is part of the native nix runtime.
Implementation
The following is the current implementation of this function.
pipe = builtins.foldl' (x: f: f x);