Jak by vypadal skript v Pixie na najití všech uživatelů, kteří používají bash, (resp. s /etc/passwd vypsat první sloupec podle ":", když poslední obsahuje bash), nebo něco podobného?
Já když jsem byl "okouzlen" lisp syntaxí, tak jsem zkoušel na skriptovat v newLISP.
Pokud to nemá být oneliner, tak například takto (bez použití externích nástrojů):
(ns parser (:require [pixie.string :refer :all]
[pixie.io :refer :all]))
(defn select
[lines]
(->> (map #(split % ":") lines)
(filter #(ends-with? (nth % 6 "") "bash"))
(map first)))
(-> "/etc/passwd" slurp split-lines select)
Pro oneliner se dá ta funkce (její tělo) vecpat přímo do posledního threading makra, ale to už se blbě čte (IMHO).
Jak byste to opravil? Nikde jsem nenašel dokumentaci ke standartní knihovně. Existuje funkce, která spustí externí program a vrátí jeho výstup? Něco jako https://clojuredocs.org/clojure.java.shell/sh v clojure?