표준 ML의 CML 확장을 사용하여 동시 목록을 구현하려고하지만 표준 ML에서 초보자 인 것과 관련된 오류가 발생합니다. clist를 입력 및 출력 채널로 구현했으며 목록 상태를 루프에 저장합니다.이 clist.sml:21.4-21.35 Error: operator and operand don't agree [circularity]
operator
ml 프로그램에서 중첩 된 구조를 사용하여 코드를 구조화하고 있습니다. 이 구조체에 대한 서명을 정의하고 있습니다. 그러나 실제로 중첩 된 서명을 가질 수는 없습니다. 예 :이 같은 것을 할 싶습니다 이에 대한 structure Example =
struct
structure Code =
struct
datatype mytype
ml 함수를 작성했으며 출력에서 Mary = "a", [Zary #, Zary #] out = Mary (메리와 Zary가 생성자 인) 을 얻습니다. 그러나 볼 수 있듯이 출력에 "#"가 있습니다. 할 경우 val Mary ("a", x) = 출력; 다음은 x = [Zary ("b"), Zary ("c")]를 표시하고 있습니다. 어느 것이 맞는지. 해시
, 중첩 할 수 서명 : 누구나 사용이의 예를 가지고 있다면 그것이 필요하다 어떤 장소 생각할 수 없기 때문에 module type FOO =
sig
module type BAR
(* … *)
end
난 그냥, 궁금 해서요. 나는 그것이 펑터 (functor)의 반환 시그니처 (return signature)에서 유용 할 것이라고
좋아, 얼마 전 나는 리팩토링 브라우저에 대해 읽었다. Lisp (또는 어쩌면 작은 토큰)이었다. 이 정보는 리 팩토링을 돕는 도구였습니다. F #에 대해 무료로 알고있는 사람이 있는지 궁금합니다. (기능적 언어는 그런 종류의 'nice'이어야 합리적인 것처럼 보입니다)
내가 함수 list_fun : int_list -> string list이 그 기능에 내가 함수 반환 Set.elements s이 있고 string list을 얻으려고 대신 I가 생각하는 StringSet.elt list를 얻을 내가 모듈 StringSet = Set.Make(String) ;;로 정의한 StringSet를 사용한다고 가정 StringSet
그래서 표준 ML에 몇 가지 코드를 작성하고 smlnj로 컴파일하려고했습니다. 이 유형의 내 피상적 인 검사를 기반으로 유형이 일치해야처럼이 보이는 지금 Error: operator and operand don't agree [tycon mismatch]
operator domain: unit -> Absyn.fundec
operand: