단위 벡터를 나타내는 유형을 정의하고 싶습니다.Elm에서 유형 값 제한
type UVec = UVec Float Float
unit : Float -> Float -> UVec
unit a b =
let
norm = sqrt (a^2 + b^2)
in
UVec (a/norm) (b/norm)
unit
내가 원하는 것을 얻을 수 있지만, 나는 UVec
프로그램의 다른 부분에서 단위 벡터가 항상 보장의 방법이 없습니다 :
이 내가 현재 가지고있는 것입니다. 예를 들어, I는 다음과 같이 쓸 수있다 :
wrong = UVec 100 200
을 그리고 그것은 잘 컴파일합니다.
unit
함수를 UVec
유형의 단독 생성자로 만들 수있는 방법이 있습니까? 또는 UVec
의 값을 제한하는 몇 가지 방법이 있습니까?
하고, 'unit' 함수 만 내 보냅니다. 다른 모듈이 볼 수있는 유일한 것입니다. – marcosh