3
나는 코드에 다음을하고 난 SML/NJ 사용SML 모듈에서 삽입 연산자를 사용하는 방법은 무엇입니까?
signature STACK=
sig
type 'a Stack
val empty :'a Stack
val isEmpty : 'a Stack -> bool
val cons : 'a*'a Stack -> 'a Stack
val head : 'a Stack ->'a
val tail : 'a Stack -> 'a Stack
val ++ : 'a Stack * 'a Stack -> 'a Stack
end
structure List : STACK =
struct
infix 9 ++
type 'a Stack = 'a list
val empty = []
fun isEmpty s = null s
fun cons (x,s) = x::s
fun head s = hd s
fun tail s = tl s
fun xs ++ ys = if isEmpty xs then ys else cons(head xs, tail xs ++ ys)
end
내가 인터프리터에서 ++ 연산자를 사용하고 싶지만 내가 S1 목록 쓰기 ++ S2 S1과 S2 스택 유형 I. 연산자가 함수가 아니라는 메시지를 얻으십시오.
감사합니다.
나는 최상위에있는 구조체의 외부에 넣어하더라도, 내가 시도 할 때 연산자는 함수가 아닙니다 나는 오류 메시지를 가지고 그것을 사용하는 . – Dragno
List 구조체를 열었습니까? 나를 위해 일한 것을 대답으로 편집했습니다. – spacemanaki
목록을 열면 제대로 작동합니다. 그러나 그것은 우리가 최상위 네임 스페이스를 "오염"시킨다는 것을 의미합니까? – Dragno