Рекурсивно удалить элементы из списка с учетом условия в OCaml? - PullRequest
0 голосов
/ 20 февраля 2019

Я хочу удалить элементы из списка, которые больше, чем число n.

let rec remove_greater lst n =

Я очень плохо знаком с OCaml, и я не уверен, как решить эту проблему или как удалить элементы из списка.Любые советы / советы приветствуются :) Спасибо

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

List.filter будет делать то, что вы хотите.Как уже упоминалось, в ocaml списки неизменны.List.filter создаст новый список, содержащий только элементы, которые соответствуют предикату, переданному этой функции.

0 голосов
/ 20 февраля 2019

Списки OCaml являются неизменными, поэтому вы не можете удалять элементы из них.Что вы действительно хотите сделать, так это создать новый список, содержащий только те элементы, которые вы хотели бы сохранить.

Естественным способом решения этой проблемы была бы рекурсивная функция, которая просматривает два случая для списков: пустой списоки непустой список.Непустой список имеет голову и хвост.

Читателям SO будет намного легче помочь, если у вас есть какой-то конкретный код, о котором можно поговорить.Мы не хотим писать ваш код для вас: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...