Как удалить единицы измерения F# в целом
-
03-07-2019 - |
Вопрос
У меня есть код манипулирования данными, который в конце выдает CSV.
Я начал обновлять его, чтобы везде добавлять единицы измерения, но теперь у меня возникла проблема с функцией csv:
val WriteCSV : string -> 'a list array -> 'b list -> string -> unit
(параметрами являются имя файла, массив столбцов, заголовки столбцов, разделитель)
Если раньше я отправлял [|s;x;y|] в WriteCSV, то теперь у меня возникла проблема: я не могу отправить [|skm;хмм;мм|].
Я попробовал написать функцию для общего удаления единиц измерения, но она не работает.
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>
вал RemoveUnit:float<'u> -> плавать
Не связан с StackOverflow