F# 단위를 일반적으로 제거하는 방법
-
03-07-2019 - |
문제
마지막에 CSV를 뱉어내는 데이터 조작 코드가 있습니다.
모든 곳에서 측정 단위를 추가하기 위해 업그레이드를 시작했지만 이제 CSV 기능에 문제가 있습니다.
val WriteCSV : string -> 'a list array -> 'b list -> string -> unit
(매개 변수는 파일 이름, 열 배열, 열 헤더, 분리기입니다)
내가 이전에 [| s; x; y |]를 writecsv로 보냈는지, 나는 [| skm; xmm; ymm |].
일반적으로 측정 단위를 제거하기위한 함수를 작성하려고했지만 작동하지 않습니다.
let removeUnit (n:float<_>) = n/1.0<_>
내 질문은 다음과 같습니다.
- 왜 작동하지 않습니까?
- 작동하도록 만들 수 있습니까?
- 이 특정 문제를 해결하는 또 다른 방법이 있습니까?
해결책
내가 당신의 문제를 제대로 얻었다면, "순수한"플로트에 캐스팅하면 장치가 제거됩니다. 예를 들어:
[<Measure>] type m
[<Measure>] type km
let removeUnit (x:float<_>) =
float x
let foo = removeUnit 2.6<m>
let foo2 = removeUnit 2.1<km>
val removeUnit : float < 'u> -> float
제휴하지 않습니다 StackOverflow