2012-07-29 13 views
6

इस उदाहरण देखें:क्लोजर: "=" संग्रहों में मूल्यों की तुलना करता है, यह इस मामले में दो सूचियों की तुलना क्यों नहीं कर सकता?

Clojure 1.4.0 
user=> (def a 1) 
#'user/a 
user=> (def b 2) 
#'user/b 
user=> (= [1 2] [a b]) 
true 
user=> (= '(1 2) '(1 2)) 
true 
user=> (= '(1 2) '(a b)) 
false 

क्यों पिछले मामले काम नहीं करता है, और कैसे मैं सदिश करने के लिए सूची में कनवर्ट किए बिना पिछले मामले काम कर सकता हूँ?

धन्यवाद!

उत्तर

15

आप2 वाली एक सूची की तुलना कर रहे हैं जिसमें एक & बी प्रतीक शामिल हैं। क्लोजर में प्रतीकों वैध मूल्य हैं। '(ए बी) बराबर है (सूची' ए 'बी) (बी सूचीबद्ध करें)।

(= '(1 2) (list a b)) 

शायद तुलनात्मक रूप से आप चाहते हैं।

संबंधित मुद्दे