У меня есть список как [1..12]
, и я хотел бы получить кусок как [4..9]
. Не знаю, как я могу это сделать, я новичок в F #. Я не знаю, есть ли для этого встроенный метод, но я хотел бы знать ручной способ.Как получить кусочек списка?
4
A
ответ
4
Чтобы сразу ответить на ваш вопрос: как вы берете часть списка? Согласование шаблонов.
Вы можете использовать сопоставление образцов, чтобы написать функцию, которая извлекает диапазон из списка. Основной алгоритм: пропустить каждый элемент списка, в то время как E < Min, затем возьмите каждый элемент, а E < = Макс.. Что-то вроде этого:
let range min max xs =
let rec skipWhile f = function
| x::xs when f x -> skipWhile f xs
| xs -> xs
let rec takeWhile f acc = function
| x::xs when f x -> takeWhile f (x::acc) xs
| _ -> List.rev acc
xs
|> skipWhile ((>) min)
|> takeWhile ((>=) max) []
[1..12] |> range 4 9
> val it : int list = [4; 5; 6; 7; 8; 9]
1
Предполагая, что вы использовать Ocaml-как подмножество F # вы, вероятно, хотите использовать стандартный модуль List, вероятно, его filter
функцию.
В противном случае можно использовать функцию рекурсивного хвоста с совпадением.
8
[1..12] |> List.filter (fun x -> x >= 4 && x <= 9)
или
[1..12] |> Seq.skip 3 |> Seq.take 6 |> Seq.toList
Списки не поддерживают нарезку, но если вы используете массив вместо этого вы можете также сделать это:
[|1..12|].[3..8]
(обратите внимание 3..8 вместо 4..9 из-за индексации на основе 0)
Смежные вопросы
- 1. Как получить кусочек струны?
- 2. Nim: Как перебрать кусочек?
- 3. Как проверить пустой кусочек?
- 4. Получите кусочек счетчика эффективно
- 5. Python Set Кусочек Сложность
- 6. назначения Кусочек modifes оригинальный список
- 7. Как отменить кусочек в go?
- 8. Как очистить кусочек в Go?
- 9. Как перебрать кусочек отображенных фрагментов?
- 10. Идти сортировать кусочек рун?
- 11. Как получить кусочек ссылок от вектора в Rust?
- 12. amCharts pie - как получить кусочек, чтобы вытащить на rollOverSlice?
- 13. Как получить кусочек ключей с карты в golang равномерно?
- 14. Как использовать оператор потокового, чтобы получить битовый кусочек из массива
- 15. Кусочек JS функции в
- 16. Кусочек фрагмента в Go
- 17. Использовать только кусочек slicebox
- 18. Кусочек список заказанных порций
- 19. Python магазин Кусочек Index как объект
- 20. ZedGraph удалить кусочек пирога?
- 21. Кусочек жонглирование в golang
- 22. UIImageView кусочек полумесяца
- 23. MongoDB: Кусочек в процентах
- 24. Как распределить кусочек поплавков в Go?
- 25. Как можно взять кусочек таким образом?
- 26. Как нарисовать заполненный кусочек пиццы в html5
- 27. highcharts - как отрегулировать кусочек ломтика снизу
- 28. Как спрятать кусочек торта высокой четкости программно
- 29. Как набрать преобразовать кусочек псевдонимами типа
- 30. Как читать кусочек подобного [] интерфейса {} в Go?