私はこのようなものを持っています:
user> (defrecord vertex [id val]) => user.vertex
user> (def v vertex) => #'user/v
user> (= v vertex) => true
user> (type v) => java.lang.Class
user> (type vertex) => java.lang.Class
user> (vertex. 1 2) => #user.vertex{:id 1, :val 2}
user> (v. 1 2) => "Unable to resolve classname v"
user> (new v 1 2) => "Unable to resolve classname v"
したがって、基本的に頂点を別の名前にバインドすることはできません。関数や let などに defrecord 型を渡そうとしても同じことです。これはなぜですか? defrecord の名前を一時的に変更するにはどうすればよいですか?
Java相互運用性に関係するトリックだと思います。