Size: a a a

2020 June 14

ИА

Иван Айгузин... in F# Chat
подскажите функцию которая заменяет элемент в листе по индексу и возвращает лист

что-то вроде T list -> int -> T -> T list
источник

Ɖ

Ɖrēw in F# Chat
А хорошо ли для этой цели использовать лист фшарповский?
источник

Ɖ

Ɖrēw in F# Chat
Думаю не очень
источник

Ɖ

Ɖrēw in F# Chat
Это же связный список
источник

Ɖ

Ɖrēw in F# Chat
Там скорость линейная будет
источник

ИА

Иван Айгузин... in F# Chat
ну в принципе справедливо
источник

Ɖ

Ɖrēw in F# Chat
Иван Айгузин
подскажите функцию которая заменяет элемент в листе по индексу и возвращает лист

что-то вроде T list -> int -> T -> T list
У массива я думаю ты без труда такую найдешь
источник

МП

Миша Проказин... in F# Chat
Иван Айгузин
подскажите функцию которая заменяет элемент в листе по индексу и возвращает лист

что-то вроде T list -> int -> T -> T list
let set i v =
   List.mapi (fun ci cv -> if i = ci then v else cv)
источник

Dv

Dr. Friedrich von Ne... in F# Chat
Миша Проказин
let set i v =
   List.mapi (fun ci cv -> if i = ci then v else cv)
Можно было бы сэкономить, прервав выполнение по достижению нужного индекса
источник

оГ

отец Григорий... in F# Chat
list.[..i-1] @ [ v ] @ list.[i+1..]
источник

МП

Миша Проказин... in F# Chat
отец Григорий
list.[..i-1] @ [ v ] @ list.[i+1..]
А какая сложность у (@)? Этот код эффективнее моего?
источник

оГ

отец Григорий... in F# Chat
Нет не эффективнее. Но красивее!
источник

оГ

отец Григорий... in F# Chat
Ту ещё 2 промежуточных листа есть.
источник

оГ

отец Григорий... in F# Chat
Эффективней будет лист экспрешон, но добавление туда индекса. Я чот не уверен
источник

МП

Миша Проказин... in F# Chat
Я про такое даже не слышал. Это что?
источник

оГ

отец Григорий... in F# Chat
Это [ ... yield ... ]
источник

оГ

отец Григорий... in F# Chat
Во! Точно!!! Совместить!!!
источник

оГ

отец Григорий... in F# Chat
[ yield! list.[..i-1]; yield v; yield! list.[i+1..] ]
источник

оГ

отец Григорий... in F# Chat
Вот теперь топчик
источник

оГ

отец Григорий... in F# Chat
Бенч нарисуй сам :)
источник