는 방법을 인쇄할 수 있습니 다형성에서 값 표준 ML?
-
22-08-2019 - |
문제
가 인쇄하는 방법을 다형성에서 값 표준 ML(SML/NJ 체)?나는 다형성은 기능을 하고 있지 않는 내가 무엇을 원하고 때문에 끝없이 깊은 상태에서 디버깅 SML(참조하십시오 실제 세계 경험을 디버깅 기능성 생산 프로그램입니까?),는 것을 보고 그것이 무엇을 하는 몇 가지 좋은-ol' print
's.간단한 예로 들 수 있(에서 프롬프트):
fun justThisOnce(x : 'a) : 'a = (print(x); x);
justThisOnce(42);
다른 제안 감사드립니다.그 동안 나는 유지 보고 잘못된 코드로 제출입니다.
업데이트
를 찾을 수 있었 버그에 하지만 문제는 여전히 희망의 미래를 방지하기픔과 고통받고 있습니다.
해결책
은 없으로 인쇄하는 방법을 다형 값입니다.두 가지 중에서 선택할 수 있습니다.
전문으로 기능하는 정수 또는 문자열이는 쉽게 인쇄했습니다.다음 버그가 죽임을,그것은 다형 again.
면 버그는 매니페스트에만 다른 인스턴스화,전달
show
추가로 인수하는 기능입니다.그래서 예를 들어,다형성은 기능이 있 유형'a list -> 'a list
확장 유형을
('a -> string) -> 'a list -> 'a list
당신은 사용
show
내부적으로 인쇄하고,다음에 의해 부분적으로 적용하는 기능에 적합한show
, 을 얻을 수 있습 버전에서 사용할 수 있는 원본다.그것은 매우 지루하지만 그것은 도움이됩니다.(그러나 경고:수도 있습 드라이브에 당신을 시도가 필요합니다.)
다른 팁
에서만 MOSML:단순하게 디버깅을 위해,사용 printVal
기능입니다.이 함수에서만 사용할 수 있 toplevel 모드에서 오류가 발생할 때 당신을 컴파일하려고 하 귀하의 프로그램입니다.
편집:는 경우에,나는 두려워한 일반적인 솔루션을 번역하는 명시적으로 값을 문자열이며,인쇄습니다.다른 대답을 위한 좋은 제안입니다.