NS
Size: a a a
NS
AT
updateByIndex
: number
-> (a -> a)
-> List a
-> List a
updateByIndex n f list =
let
go : Int -> List a -> List a
go n list = case (n, list) of
(_, []) -> []
(0, x :: xs) -> f x :: xs
(n, x :: xs) -> x :: go (n - 1) xs
in
go n list
к
updateAt : Int -> (a -> a) -> List a -> List a
updateAt n f list =
case ( n, list ) of
( _, [] ) ->
[]
( 0, x :: xs ) ->
f x :: xs
( n, x :: xs ) ->
x :: updateAt (n - 1) f xs
к
А
А
А
к
к
List.indexedMap (\ix x -> if n == x then f x else x)
AT
А
к
NS
к
List.map (\x -> if predicate x then f x else x)
AT
А
спасибо
МН
AT