Jaka jest różnica między oceną double i # double w Clojure/Lisp?Jaka jest różnica między procedurą i procedurą # 'w Lisp/Clojure?
1:2 user=> double
#<core$double__4077 [email protected]>
1:3 user=> #'double
#'clojure.core/double
Jaka jest różnica między oceną double i # double w Clojure/Lisp?Jaka jest różnica między procedurą i procedurą # 'w Lisp/Clojure?
1:2 user=> double
#<core$double__4077 [email protected]>
1:3 user=> #'double
#'clojure.core/double
W Clojure, #'foo
jest skrótem (var foo)
, która zwraca się obiekt zmienny foo
odnosi się, w przeciwieństwie do jego wartości. Szukać go w odnośniku:
Nie jestem pewien, jeśli chcesz poznać znaczenie w Lisp: W Common Lisp, #'foo
jest skrótem (function foo)
, który jest używany do uzyskania dostępu do wartości funkcji związany z nazwą foo
, gdy nie jest pozycja operatora.
trochę nie tak. (funkcja foo) sprawdza wartość funkcjonalną, prawda, ale niekoniecznie od symbolu. Funkcja leksykalna nie zawiera żadnych symboli, więc szuka wartości funkcjonalnej związanej z nazwą (!) Foo ze środowiska leksykalnego. –
Dobrze, naprawione. Naprawdę powinienem naprawić moją skłonność do mówienia "symbolu", kiedy mam na myśli "imię". – Svante