Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (ns csvdb.core
- (:require [clojure-csv.core :as csv]))
- (defn- parse-int [int-str]
- (Integer/parseInt int-str))
- (def student-tbl (csv/parse-csv (slurp "student.csv")))
- (def subject-tbl (csv/parse-csv (slurp "subject.csv")))
- (def student-subject-tbl (csv/parse-csv (slurp "student_subject.csv")))
- ;; (table-keys student-tbl)
- ;; => [:id :surname :year :group_id]
- ;;
- ;; Hint: vec, map, keyword, first
- (defn table-keys [tbl]
- (vec (map keyword (first tbl))))
- ;; (key-value-pairs [:id :surname :year :group_id] ["1" "Ivanov" "1996"])
- ;; => (:id "1" :surname "Ivanov" :year "1996")
- ;;
- ;; Hint: flatten, map, list
- (defn key-value-pairs [tbl-keys tbl-record]
- (flatten (map list tbl-keys tbl-record)))
- ;; (data-record [:id :surname :year :group_id] ["1" "Ivanov" "1996"])
- ;; => {:surname "Ivanov", :year "1996", :id "1"}
- ;;
- ;; Hint: apply, hash-map, key-value-pairs
- (defn data-record [tbl-keys tbl-record]
- (apply hash-map (key-value-pairs tbl-keys tbl-record)))
- ;; (data-table student-tbl)
- ;; => ({:surname "Ivanov", :year "1996", :id "1"}
- ;; {:surname "Petrov", :year "1996", :id "2"}
- ;; {:surname "Sidorov", :year "1997", :id "3"})
- ;;
- ;; Hint: let, map, next, table-keys, data-record
- (defn data-table [tbl]
- ????)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement