Вопрос

У меня есть код манипулирования данными, который в конце выдает 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> -> плавать

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top