Итак, это мой вопрос: я хочу создать функцию, которая принимает список и int, затем она рекурсивно перемещается по списку, и если она находит в списке элемент, равный int, он должен вернуть весь список с элемент удален, и логическое значение, указывающее, что что-то было удалено. вот что я получил до сих пор:
fun foo ([], n) = ([],false)
| foo ((x::xs), n) = if x = n
then (xs,true)
else ([x] @ foo(xs,n),false);
my idea was to make the function cons the needed elements inside the tuple like this:
([x0] @ [x1] @ [x2] @ [xs], true)
так есть ли способ сделать эту функцию? имейте в виду, что он должен остановиться, как только попадет в элемент, равный n, но все же сохранить остальную часть списка и иметь возможность вернуть логическое значение. время выполнения является ключевым моментом.