Skip to content

Instantly share code, notes, and snippets.

@jasongilman
Created September 8, 2012 01:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jasongilman/3671146 to your computer and use it in GitHub Desktop.
Save jasongilman/3671146 to your computer and use it in GitHub Desktop.
Clojure example
(def users [{:first-name "William" :last-name "Hudson"}
{:first-name "Ellen" :last-name "Ripley"}
{:first-name "Dwayne" :last-name "Hicks"}
{:first-name "Carter" :last-name "Burke"}])
(def user {:first-name "William" :last-name "Hudson"})
(get :first-name user)
(:first-name user)
(defn full-name [user]
(str (:first-name user) " " (:last-name user)))
(map full-name users)
("William Hudson" "Ellen Ripley" "Dwayne Hicks" "Carter Burke")
(sort
(fn [u1, u2]
(compare (:last-name u1) (:last-name u2)))
users)
(sort-by :last-name users)
({:first-name "Carter", :last-name "Burke"} {:first-name "William", :last-name "Hudson"} {:first-name "Dwayne", :last-name "Hicks"} {:first-name "Ellen", :last-name "Ripley"})
(map full-name (sort-by :last-name users))
("Carter Burke" "William Hudson" "Dwayne Hicks" "Ellen Ripley")
(require 'clojure.string)
(clojure.string/join "," some-list)
(require '[clojure.string :as str])
(str/join "," some-list)
(str/join ", " (map full-name (sort-by :last-name users)))
("Carter Burke, William Hudson, Dwayne Hicks, Ellen Ripley")
(ns user_examples
(:require [clojure.string :as string]))
(defn sorted-full-names
"Returns a string containing comma separated user full names sorted by last name"
[users]
(str/join ", " (map full-name (sort-by :last-name users))))
# Gemfile
gem "jrclj"
clj = JRClj.new
# Import a clojure namespace so you can call functions defined in it.
clj._import "some.clojure.ns"
# Call a clojure function
result = clj.function_name(arg1, arg2)
users = [{first_name: "William", last_name: "Hudson"},
{first_name: "Ellen", last_name: "Ripley"},
{first_name: "Dwayne", last_name: "Hicks"},
{first_name: "Carter", last_name: "Burke"}]
clj._import("users_example")
# This won't work.
clj.sorted_full_names(users)
users = [{"first-name"=>"William", "last-name"=>"Hudson"},
{"first-name"=>"Ellen", "last-name"=>"Ripley"},
{"first-name"=>"Dwayne", "last-name"=>"Hicks"},
{"first-name"=>"Carter", "last-name"=>"Burke"}]
clj_users = Zweikopf::Transformer.from_ruby(users)
clj.sorted_full_names(users)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment