對不起,如果這個問題沒有任何意義。程序流程 - 如果一個計算失敗,則退出操作
我目前正在編寫一個小應用程序,我想'鏈接'一起形成更廣泛的計算功能。
因此,例如,我有一個函數調用Web服務,並返回hash-map
作爲結果,或nil
如果是錯誤或出錯了。鏈中的下一個函數接受地圖並進行一些進一步處理,然後將其傳遞給下一個函數......等等。
事情是,如果第一個函數失敗,它會通過nil
到下一個函數,並會拋出一個空指針(或其他),我不希望它甚至到達這個階段。 換句話說,如果鏈條中的一個項目失敗,我希望整個計算失敗。
例如
;successful computation = function1 returns W -> function2 returns X -> function3 returns Y -> function4 returns Z -> Z
;failed computation = function1 returns W -> function2 returns X -> function3 returns nil -> nil
(-> (function1 "http://webservice.com") (function2) (function3) (function4))
的事情是我不想被在開始與if(nil? arg)
亂扔我的每一個功能,最好我想,可能照顧,對我的抽象,但我真的不避讓了什麼Clojure中
我想採用Scala的風格Option
類型可以是Some(value)
或None
,但我仍然需要垃圾我的這些檢查代碼在開始的
任何意見或的可用回覆將非常感謝
真棒這個是我在找的東西,看起來這個庫裏有更多的抽象,這對我來說也是非常有用的! – djhworld