17 lines
430 B
Clojure
17 lines
430 B
Clojure
|
(ns pronouns.util
|
||
|
(:require [clojure.string :as s]))
|
||
|
|
||
|
(defn slurp-tabfile [path]
|
||
|
(let [lines (s/split (slurp path) #"\n")]
|
||
|
(map #(s/split % #"\t") lines)))
|
||
|
|
||
|
(defn table-lookup
|
||
|
[query-key table]
|
||
|
(let [arity (count query-key)
|
||
|
filtered-table (filter #(= query-key (take arity %)) table)]
|
||
|
(first filtered-table)))
|
||
|
|
||
|
(defn tabfile-lookup
|
||
|
[query-key tabfile]
|
||
|
(table-lookup query-key (slurp-tabfile tabfile)))
|