2010-09-07 66 views

回答

17

確實存在:

Clojure 1.2.0 
user=> (not= 1 2) 
true 
user=> (not= 1 1) 
false 
4

根據我的谷歌搜索「不等於」是等效的,但是我個人爲零熟悉使用Clojure。

0

是否有某些原因not=不適合您的用途?

16
user=> (doc not=) 
------------------------- 
clojure.core/not= 
([x] [x y] [x y & more]) 
    Same as (not (= obj1 obj2)) 
nil 

有趣的是,你可以定義=是一樣的不=如果你真的

user=> (def != not=) 
#'user/!= 
user=> (!= 2 2) 
false 
user=> (!= 2 3) 
true 
+7

我懷疑clojure避開!=語法,以保持!的慣用用法。字符以指示必須在事務內發生的功能。 – 2010-09-07 14:52:24

+1

確實。在Java和類似的語言中!意味着否定。如果不是=!=,那將是非常不一致的。 – Rayne 2010-09-07 16:35:54

6

在有很多的Clojure代碼! char意味着一個函數以某種你應該注意的方式改變某個事物的狀態。在clojure transients大量使用這些

compare-and-set! 
alter-meta! 
conj! 
persistent! 

檢查出http://clojure.github.com/clojure/和搜索!字符。這些功能通常伴隨着像「必須沒有副作用」的警告

+0

對不起,如果這個職位是放!功能不好。他們真的很有用,實際上可以安全使用:) – 2010-09-08 17:58:50

相關問題