문제

그래서 Clojure에서 ADT를 수행하는 방법을 알아내려고 검색하다가 교체되었다는 점만 제외하면 훌륭하고 좋은 오래된 clojure-contrib을 발견했습니다.별거 아닙니다. 대체된 clojure-contrib의 분리된 라이브러리 카탈로그를 살펴보세요. 하지만 제 인생에서는 새로운 clojure-contrib 분리된 라이브러리에서 defadt가 마이그레이션된 위치를 찾을 수 없습니다.

그럼 어디로 이전됐나요?

나는 주위를 둘러보고 있었다 http://dev.clojure.org/display/doc/Clojure+Contrib+Libraries 그러나 그것을 알아낼 수는 없습니다.

나에게 줄 문자열을 줄 수 있다면 보너스 포인트 alembic.still/distill 나를 위해 연결하도록 해주세요.

도움이 되었습니까?

해결책

Clojure의 일반적인 스타일은 ADT를 정의하지 않습니다.나는 defadt 기능이 오래되었거나 더 이상 사용되지 않습니다.

대신 일반 Clojure 맵이나 벡터를 사용하여 데이터 구조를 정의하는 것을 고려해 보세요.

또는 다음을 사용할 수 있습니다. deftype 또는 defrecord 프로토콜을 사용하여 다형성 디스패치에 사용할 수 있는 명명된 유형을 원하는 경우.이는 ADT와 유사한 동작을 얻는 유연하고 빠른 방법입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top