diff options
author | danbst <abcz2.uprola@gmail.com> | 2019-07-14 13:17:49 +0300 |
---|---|---|
committer | danbst <abcz2.uprola@gmail.com> | 2019-07-14 13:29:58 +0300 |
commit | 69920dafbffcd757acff23f659263ec4b952a017 (patch) | |
tree | 4390925c6087d284c11183193044835152f6cea5 /nixos/modules/services/x11/display-managers | |
parent | 696767a9c9dc4b6b5066a3172c89138c0bb6e40d (diff) | |
download | nixlib-69920dafbffcd757acff23f659263ec4b952a017.tar nixlib-69920dafbffcd757acff23f659263ec4b952a017.tar.gz nixlib-69920dafbffcd757acff23f659263ec4b952a017.tar.bz2 nixlib-69920dafbffcd757acff23f659263ec4b952a017.tar.lz nixlib-69920dafbffcd757acff23f659263ec4b952a017.tar.xz nixlib-69920dafbffcd757acff23f659263ec4b952a017.tar.zst nixlib-69920dafbffcd757acff23f659263ec4b952a017.zip |
lib: introduce `foreach` = flip map
The main purpose is to bring attention to `flip map`, which improves code readablity. It is useful when ad-hoc anonymous function grows two or more lines in `map` application: ``` map (lcfg: let port = lcfg.port; portStr = if port != defaultPort then ":${toString port}" else ""; scheme = if cfg.enableSSL then "https" else "http"; in "${scheme}://cfg.hostName${portStr}" ) (getListen cfg); ``` Compare this to `foreach`-style: ``` foreach (getListen cfg) (lcfg: let port = lcfg.port; portStr = if port != defaultPort then ":${toString port}" else ""; scheme = if cfg.enableSSL then "https" else "http"; in "${scheme}://cfg.hostName${portStr}" ); ``` This is similar to Haskell's `for` (http://hackage.haskell.org/package/base-4.12.0.0/docs/Data-Traversable.html#v:for)
Diffstat (limited to 'nixos/modules/services/x11/display-managers')
0 files changed, 0 insertions, 0 deletions