변수를 입력하고 실제 또는 정수인지 확인하고 해당 작업에 대해 두 가지 다른 작업을 수행하길 원합니다. 정수가 아닌 경우 거짓이라고 말하고 그렇지 않으면 거짓입니다.입력이 정수인지 여부를 확인하십시오.
재미 realorinteger (n) = n 인 경우 int이면 true이고 그렇지 않으면 false입니다.
하지만 확실히 작동하지 않습니다. int에서 n을 시도해 보았습니다.
어떤 도움이 필요합니까?
변수를 입력하고 실제 또는 정수인지 확인하고 해당 작업에 대해 두 가지 다른 작업을 수행하길 원합니다. 정수가 아닌 경우 거짓이라고 말하고 그렇지 않으면 거짓입니다.입력이 정수인지 여부를 확인하십시오.
재미 realorinteger (n) = n 인 경우 int이면 true이고 그렇지 않으면 false입니다.
하지만 확실히 작동하지 않습니다. int에서 n을 시도해 보았습니다.
어떤 도움이 필요합니까?
이 작업을 수행 할 수 없습니다.
유형 시스템은 단순히 기능이 여러 유형을 취할 수 없으며 유형에 따라 작동합니다. 함수에 int
이 있거나 real
이 필요합니다. (또는 두 가지 모두 걸리지 만 string
s, list
s 등등 ... 다형성입니다.
정수 또는 실수와 같은 값을 캡슐화하는 데이터 유형을 만들어 가짜로 만들 수 있습니다. 그래서 :
fun realorinteger (IVal i) = ... (* integer case here *)
| realorinteger (RVal r) = ... (* real case here *)
이 함수는 다음 x
가 맞의 타입 타입 intorreal -> x
을 갖
datatype intorreal = IVal of int | RVal of real
그러면 원하는 번호를 추출하는 등의 값에 일치하는 패턴을 사용하여 t-hand-side 표현. 결과 값은 두 경우 모두 동일한 유형이어야합니다.
fun round (IVal i) = i
| round (RVal r) = Real.round r
다음과 같이 호출 :
val roundedInt = round (IVal 6);
val roundedReal = round (RVal 87.2);
그러한 함수의 예는 라운딩 함수일 수도