Size: a a a

2021 February 14

к

кана in Haskell
источник

к

кана in Haskell
источник

к

кана in Haskell
[BRM]White Rabbit
ну, я так и сказал
ну, я не понял просто, тут нет у списка последнего элемента
источник

A

Andrey in Haskell
кана
в то время как иммутабельность позволяет такие вещи пошарить в памяти и просто закольцевать структуру
О, прикольно
На степике писали про это, но не сказали, почему так
источник

[

[BRM]White Rabbit in Haskell
кана
нет, хвост после N элементов это начало того же списка, где N - длина исходного списка
Такие бесконечные списки можно и с императипочкой сделать😂
источник

к

кана in Haskell
ну да, только отсутствие иммутабельности сломает структуру

тут мы точно знаем, что элементы не поменяются, поэтому можно завязывать узел, а без иммутабельности мы получим повторение мутации во всех повторах
источник

[

[BRM]White Rabbit in Haskell
кана
ну, я не понял просто, тут нет у списка последнего элемента
Я просто шизоид плюсовой, думаю указателями
источник

[

[BRM]White Rabbit in Haskell
кана
ну да, только отсутствие иммутабельности сломает структуру

тут мы точно знаем, что элементы не поменяются, поэтому можно завязывать узел, а без иммутабельности мы получим повторение мутации во всех повторах
сделать гет-онли элементы на изи же можно)
источник

к

кана in Haskell
ну тогда мы получим просто опять иммутабельность

я же не говорил что это на хаскеле так можно, я сказал что с иммутабельностью так можно
источник

[

[BRM]White Rabbit in Haskell
Я кстати ещё по расту начал почитывать материалы, там красиво реализовано всё с безопасностью от мутабельности)
источник

A

Andrey in Haskell
кстати кроме иммутабельности есть более слабые версии персистентности...
источник

к

кана in Haskell
да где тут TCO

тут же ленивая структура генерируется, зачем тут TCO, с ним будет только хуже

точнее даже так, с TCO в этой функции не получится даже первый элемент прочитать, нужно будет дождаться, пока бесконечное применение сожрет всю память
источник

[

[BRM]White Rabbit in Haskell
Andrey
кстати кроме иммутабельности есть более слабые версии персистентности...
Гит-система в пример, ага
источник

[

[BRM]White Rabbit in Haskell
Кстати, я вроде видел, что в идрисе надо доказать, что рекурсия в любом случае имеет конечное количество итераций. Означает ли это, что в нём невозможно реализовать матемтические последовательности, для которых не доказана их конечность для любого стартового n?
взять хотя бы стандартную штуку, в  которой если n - чётное, то n/2, если нечётное, то n*3+1, если 1, то выйти из последовательности
источник

к

кана in Haskell
1. в простых случаях доказывать не нужно, тотальность следует из структурной рекурсии (когда мы рекурсируемся на части значения из аргумента, то есть аргумент всегда убывает)
2. в более сложных случаях да, нужно доказывать
3. функция не обязательно должна быть тотальной, это свойство которое идрис может проверять, но можно и явно указать, что функия нетотальная
4. данные могут быть тоже лениво-бесконечные, кодата
источник

[

[BRM]White Rabbit in Haskell
Второй вариант избыточен или всё же улучшает перформанс функции?
источник

[

[BRM]White Rabbit in Haskell
Так, если что, вопрос снимается, реверс белого человка реализуется на фолдах, а фолды это аккум, т.е. мой второй вариант
источник

MK

Maxim Koltsov in Haskell
а был какой-то трюк чтобы $ в паттернах использовать?
источник

MK

Maxim Koltsov in Haskell
или нет?
источник

JS

Jerzy Syrowiecki in Haskell
[BRM]White Rabbit
Второй вариант избыточен или всё же улучшает перформанс функции?
улучшает. бенчмаркайте
источник