SML에 데이터 유형 "expr"
(목록 "b")의 멤버가 포함되어 있습니다. 나는 또한 "What"
이라는 함수를 가지고 있는데, 이는 인자가 "expr"
데이 터 타입에서만 나온다. b는 expr
의 목록이기 때문에SML - 목록 및 재귀
datatype expr = K of string| Number2 of expr * (expr list);
datatype number = Number1 of string | Number3 of int;
What....
| What (Number2 (t,[]))= Number3(0)::What(t)
| What (Number2 (y,(a::b)) = append (What(a), What(b));
오류가 발생하고, 기능 What
은 "expr
"가 아니라 "expr list
"가지고 : 지금 나는 다음 코드에 문제가 있습니다. 모든 구성원이 "b"
인지 확인하고 새 목록을 만들면됩니다. 어느 멤버가 데이터 형식 "number"
에서 왔는지 확인하고 싶습니다. map function
을 사용해 보았지만 도움이되지 않았습니다 (여기의 마크 : SML - unbound variable or constructor 참조).
아이디어가 있으십니까? 지도를 사용하지 않고도 할 수있는 또 다른 방법이 있습니까? 나는 하루 동안 그것을 쌓아 둔다.
당신은 당신이 다른 질문을받은 솔루션 제공, "도움이되지 않았다"무슨 뜻인지 설명해야합니다. 올바른 결과물로 기대되는 것이 무엇인지 분명하지 않습니다. 'What' 함수의 완전한 정의와 입력과 예상 출력의 예제를 제공하십시오. –
또한'append' 함수를 사용하는 대신 내장 함수'@'를 사용할 수 있습니다. 그것은'lst1 @ lst2'입니다. –
@ Jesper.Reenberg : 정말 고마워요! 연산자 @ 문제 해결! –