From 5bdbf6ecd6c6ab4b9500719bbdadf0a240beb5a0 Mon Sep 17 00:00:00 2001 From: Philip Schwarz Date: Sat, 25 Oct 2014 08:01:53 +0100 Subject: [PATCH 1/4] make 'bake' parameter names more understandable --- video1.clj | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/video1.clj b/video1.clj index d624952..9f3c04f 100644 --- a/video1.clj +++ b/video1.clj @@ -186,35 +186,35 @@ (ref-set bowl-state {}) :ok))) -(defn bake [p m] +(defn bake [pan-contents minutes] (cond - (= p + (= pan-contents {:flour 1 :egg 1 :sugar 1 :butter 1}) (cond - (< m 30) + (< minutes 30) :mushy-mess - (> m 30) + (> minutes 30) :burned-mess - (= m 30) + (= minutes 30) :cookies) - (= p + (= pan-contents {:flour 2 :egg 2 :milk 1 :sugar 1}) (cond - (< m 25) + (< minutes 25) :mushy-mess - (> m 25) + (> minutes 25) :burned-mess - (= m 25) + (= minutes 25) :cake) - (nil? p) + (nil? pan-contents) (do (println "Baking an empty pan.") nil) From c76a00f9611e02be524de547f528b4e3ce6405ac Mon Sep 17 00:00:00 2001 From: Philip Schwarz Date: Sat, 25 Oct 2014 08:18:38 +0100 Subject: [PATCH 2/4] bake-pan now handles an empty pan Instead of throwing an exception, it tells the user there is nothing to bake --- .idea/.name | 1 + .idea/compiler.xml | 23 ++ .idea/copyright/profiles_settings.xml | 3 + .idea/encodings.xml | 5 + .idea/misc.xml | 8 + .idea/modules.xml | 7 + .idea/scopes/scope_settings.xml | 5 + .idea/vcs.xml | 7 + .idea/workspace.xml | 547 ++++++++++++++++++++++++++ video1.clj | 8 +- 10 files changed, 613 insertions(+), 1 deletion(-) create mode 100644 .idea/.name create mode 100644 .idea/compiler.xml create mode 100644 .idea/copyright/profiles_settings.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/scopes/scope_settings.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..c58f528 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +intro-clojure-1 \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..217af47 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..e206d70 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..4f3fb01 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..684f749 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml new file mode 100644 index 0000000..922003b --- /dev/null +++ b/.idea/scopes/scope_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..def6a6a --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..2ab1961 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,547 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + localhost + 5050 + + + + + + + 1414216921449 + 1414216921449 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + unnamed + + + + + + + + No facets are configured + + + + + + + + activemodel (v3.2.0, RVM: ruby-1.9.3-p194) [gem] + + + + + + + + 1.7 + + + + + + + + + + + + + + + 1.7 + + + + + + + + + + + + + + + + diff --git a/video1.clj b/video1.clj index 9f3c04f..16821a5 100644 --- a/video1.clj +++ b/video1.clj @@ -225,7 +225,12 @@ (defn bake-pan "Put the pan in the oven and bake it for so many minutes." [minutes] - (if (number? minutes) + (cond + (nil? (:contents @pan-state)) + (do + (println "There is nothing to bake: the pan is empty!") + :error) + (number? minutes) (do (println "Baking" minutes "minutes. . .") (dosync @@ -234,6 +239,7 @@ (println "Done!") (println "The result is" (name (:contents @pan-state))) :ok) + :else (do (println "I need a number of minutes to bake. You gave me a" (type minutes)) :error))) From 6acfe4db8c90a84e9f0688a923f506283f42d98e Mon Sep 17 00:00:00 2001 From: Philip Schwarz Date: Sat, 25 Oct 2014 08:31:07 +0100 Subject: [PATCH 3/4] Revert 5bdbf6e..c76a00f This rolls back to commit 5bdbf6ecd6c6ab4b9500719bbdadf0a240beb5a0. --- .idea/.name | 1 - .idea/compiler.xml | 23 -- .idea/copyright/profiles_settings.xml | 3 - .idea/encodings.xml | 5 - .idea/misc.xml | 8 - .idea/modules.xml | 7 - .idea/scopes/scope_settings.xml | 5 - .idea/vcs.xml | 7 - .idea/workspace.xml | 547 -------------------------- video1.clj | 8 +- 10 files changed, 1 insertion(+), 613 deletions(-) delete mode 100644 .idea/.name delete mode 100644 .idea/compiler.xml delete mode 100644 .idea/copyright/profiles_settings.xml delete mode 100644 .idea/encodings.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/scopes/scope_settings.xml delete mode 100644 .idea/vcs.xml delete mode 100644 .idea/workspace.xml diff --git a/.idea/.name b/.idea/.name deleted file mode 100644 index c58f528..0000000 --- a/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -intro-clojure-1 \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index 217af47..0000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml deleted file mode 100644 index e7bedf3..0000000 --- a/.idea/copyright/profiles_settings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index e206d70..0000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 4f3fb01..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 684f749..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml deleted file mode 100644 index 922003b..0000000 --- a/.idea/scopes/scope_settings.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index def6a6a..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/.idea/workspace.xml b/.idea/workspace.xml deleted file mode 100644 index 2ab1961..0000000 --- a/.idea/workspace.xml +++ /dev/null @@ -1,547 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - localhost - 5050 - - - - - - - 1414216921449 - 1414216921449 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - unnamed - - - - - - - - No facets are configured - - - - - - - - activemodel (v3.2.0, RVM: ruby-1.9.3-p194) [gem] - - - - - - - - 1.7 - - - - - - - - - - - - - - - 1.7 - - - - - - - - - - - - - - - - diff --git a/video1.clj b/video1.clj index 16821a5..9f3c04f 100644 --- a/video1.clj +++ b/video1.clj @@ -225,12 +225,7 @@ (defn bake-pan "Put the pan in the oven and bake it for so many minutes." [minutes] - (cond - (nil? (:contents @pan-state)) - (do - (println "There is nothing to bake: the pan is empty!") - :error) - (number? minutes) + (if (number? minutes) (do (println "Baking" minutes "minutes. . .") (dosync @@ -239,7 +234,6 @@ (println "Done!") (println "The result is" (name (:contents @pan-state))) :ok) - :else (do (println "I need a number of minutes to bake. You gave me a" (type minutes)) :error))) From 26ee17ebb3e7f0d8eeef45b4296c86a0742d2fc9 Mon Sep 17 00:00:00 2001 From: Philip Schwarz Date: Sat, 25 Oct 2014 08:36:05 +0100 Subject: [PATCH 4/4] bake-pan now handles an empty pan rather than throwing an exception, tell the user the pan is empty --- video1.clj | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/video1.clj b/video1.clj index 9f3c04f..a7d816a 100644 --- a/video1.clj +++ b/video1.clj @@ -225,15 +225,21 @@ (defn bake-pan "Put the pan in the oven and bake it for so many minutes." [minutes] - (if (number? minutes) + (cond + (nil? (:contents @pan-state)) + (do + (println "There is nothing to bake: the pan is empty!") + :error) + (number? minutes) (do (println "Baking" minutes "minutes. . .") (dosync - (alter pan-state update-in [:contents] bake minutes) - (alter pan-state assoc :baking true)) + (alter pan-state update-in [:contents] bake minutes) + (alter pan-state assoc :baking true)) (println "Done!") (println "The result is" (name (:contents @pan-state))) :ok) + :else (do (println "I need a number of minutes to bake. You gave me a" (type minutes)) :error)))