Created
September 8, 2012 01:24
-
-
Save jasongilman/3671146 to your computer and use it in GitHub Desktop.
Clojure example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(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)))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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