Преобразовать / бросить список с плавающей точкой в ​​список int - PullRequest
0 голосов
/ 16 апреля 2019

Если у меня есть список:

[1.0;2.0;3.0;...]

Возможно ли преобразовать или привести его к целому списку:

[1;2;3;...] 

Я посмотрел библиотеку списков и не могу найти функцию для этого

Ответы [ 2 ]

3 голосов
/ 16 апреля 2019
utop # List.map;;
- : ('a -> 'b) -> 'a list -> 'b list = <fun>

принимает функцию f : 'a -> 'b, которая возвращает значение типа 'a к значению типа 'b и возвращает функцию из списка 'a s в список 'b s:

utop # List.map int_of_float;;
- : float list -> int list = <fun>

В этом случае int_of_float : int -> float является нашим f, поэтому мы получаем функцию из списка float с в список int с.

utop # List.map int_of_float [1.0;2.0;3.0];;
- : int list = [1; 2; 3]
1 голос
/ 16 апреля 2019

Вы можете попробовать использовать List.map вместе с int_of_float для преобразования чисел с плавающей точкой в ​​целые числа.

Пример:

let float_list = [1.0; 2.0; 3.0] in
let int_list = List.map (fun x -> int_of_float x) float_list in
(* int_list is [1; 2; 3] *)
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...