2017-09-22 16 views
1

동일한 치수의 배율 인 측정 단위를 자동 변환 할 수 있다면 좋을 것입니다. (kg -> g, cm -> mm, km -> m). 나는 온라인 읽은 바로는 :F # (킬로미터 -> 미터) 단위의 자동 측정 단위 변환

https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/units-of-measure https://fsharpforfunandprofit.com/posts/units-of-measure/

나는 도우미 기능이없는이 작업이 가능하지 않는 것 같습니다. 내 생각에, 이러한 변환은 계산을 오염시킵니다. 이런 일을하고 싶습니다.

[<Measure>] type m 
[<Measure>] type km = 1000 * m 

다음 중 하나가 작동하지 않습니다.

let distance = 1000 * 10**3 <m> 

다른 방법으로 달성 할 수 있습니까?

답변

1

나는 F #을 알지 못하지만, 예, 단위를 계산할 수 없습니다. 그렇기 때문에 입력 중에 만 값을 변환해야합니다 (예 : form file/stdin 읽기). 항상 동일한 단위로 계산을 수행하십시오. 미터법 시스템은 여기에 있습니다. 그런 다음, 결국 미터법의 결과를 원하는 단위로 변환하십시오. 당신이 모든 것이 동일한 단위에 있지만 결국이 사건으로하지 판명 것을 "가정"때

나중에

+0

문제에 새로운 단위에 대한 지원을 추가하는 것은 매우 쉽게 그 방법은 온다 ... . 측정 단위는 훌륭합니다. 더 자주 사용되어야합니다. – s952163

+1

아니요, 산문으로 읽으려는 제 코드가 필요합니다. F #은 잘합니다. 이 특별한 문제에서, 나는 불필요한 사소한 변환없이 입력과 계산을 선언하고 싶다. 내가 종이에 할 때와 똑같다. 종이에 – Pasho

+0

을 쓰면이 거리 물건을 질문에서 제외 할 수 있습니다. 당신은 속도 = 거리/시간을 할 것이고 그것은 항상 속도를 제공하지만 거리와 속도의 단위에 따라 다른 단위로 나타납니다. 내 이해를 위해, F #은 똑같이 할 것입니다. 그래서 당신의 문제는 무엇입니까? –