Size: a a a

2021 February 08

к

кана in Haskell Start
swap :: (a, b) -> (b, a)
swap (a, b) = (b, a)

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

вот задача:
1. есть ленивый невыполненный список неизвестной длины
2. строим из нее лениво мапу, мапа пока не вычисляется, ни один элемент не прочитался
3. ищем путь до какого-нибудь элемента. И тут все, так как мы не знаем длину списка, мы не знаем глубину дерева, какой же длины будет путь?

И наоборот, зная длину пути в дереве, можно приблизительно (в пределах степени двойки от длины) вычислить число элементов. Что тоже должно наталкивать на некоторые мысли, как же мы можем знать приблизительно длину списка, прочитав скажем только один элемент?
источник

к

кана in Haskell Start
в общем, решение, которое позволит не читать весь файл, я написал несколько раз выше - это [(k, v)], список пар из ключ/значение. Поиск элемента будет за O(n), но можно оптимизировать число сравнений бинарно (что не всегда будет оптимизацией конечно), но позволит не читать весь файл
источник

AK

Alexey Kholodkov in Haskell Start
кана
swap :: (a, b) -> (b, a)
swap (a, b) = (b, a)

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

вот задача:
1. есть ленивый невыполненный список неизвестной длины
2. строим из нее лениво мапу, мапа пока не вычисляется, ни один элемент не прочитался
3. ищем путь до какого-нибудь элемента. И тут все, так как мы не знаем длину списка, мы не знаем глубину дерева, какой же длины будет путь?

И наоборот, зная длину пути в дереве, можно приблизительно (в пределах степени двойки от длины) вычислить число элементов. Что тоже должно наталкивать на некоторые мысли, как же мы можем знать приблизительно длину списка, прочитав скажем только один элемент?
Придется мне кодом описать. Так мы друг друга не понимаем
источник

к

кана in Haskell Start
data Tree a
 = Leaf a
 | Branch a (Tree a) (Tree a)

rotateRight :: Tree a -> Tree a
rotateRight (Branch q (Branch p a b) c) =
 Branch p a (Branch q b c)
rotateRight other = other

вот простое дерево, и функция поворота его вправо. Если хранить в каждой ноде еще глубину, то можно быстро балансить дерево поворотами. Без мутабельности. Ссылки на значения не поменялись, поменялась только структура дерева
источник

к

кана in Haskell Start
с этой картинки взял имена переменных, чтобы наглядно было
источник

JS

Jerzy Syrowiecki in Haskell Start
Андрей Вилинский
не подскажете чем можно watch-ить pandoc, чтоб было удобно редактировать markdown для reveal.js презентации?
с мнгновенной отдачей так сказать
или есть инструмент для слайдов еще интереснее?
источник
2021 February 09

AP

Aleksei (astynax) Pi... in Haskell Start
Я кидал уже один вотчер. Человек хочет, чтобы у него ещё и браузер обновлял страницу по изменению
источник

AR

Aleksandr Ruin in Haskell Start
modifyMVar_ он внутри фунцкии сохрaняет переменную? Mожно другим функциям "расшарить" переменную?
источник

JS

Jerzy Syrowiecki in Haskell Start
Aleksandr Ruin
modifyMVar_ он внутри фунцкии сохрaняет переменную? Mожно другим функциям "расшарить" переменную?
есть ссылка на переменную (MVar a), есть значение переменной (a).

ссылку можно шарить снаружи modify.

внутри изменяющей функции нет никакой ссылки, есть только значение
источник

JS

Jerzy Syrowiecki in Haskell Start
Aleksandr Ruin
modifyMVar_ он внутри фунцкии сохрaняет переменную? Mожно другим функциям "расшарить" переменную?
вопрос был о том, меняется ли ссылка? один ли MVar до и после? да, конечно. иначе бы вообще ничего не работало
источник

JS

Jerzy Syrowiecki in Haskell Start
do
 modifyMVar var act1
 modifyMVar var act2

конечно, такие две операции работают с одной и той же изменяемой var
источник

AR

Aleksandr Ruin in Haskell Start
правилно понимаю это: "x' <- readMVar x" и есть ссылка? MVar`ов 4 всего внутри функции.
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Это чтение по ссылке x с сохранением прочитанного в x'
источник

12

1 2 in Haskell Start
совершенно не могу понять роль i в этом объявлении
источник

12

1 2 in Haskell Start
какой-то алиас для типа?
источник

A

Aragaer in Haskell Start
ну можно сделать Client Int и будет Int
источник

A

Aragaer in Haskell Start
а можно Client (String,[Int]) и будет тогда айдишник такой
источник

12

1 2 in Haskell Start
типа Generic в джавах? как называется идиома?
источник

к

кана in Haskell Start
параметрический тип
источник

к

кана in Haskell Start
1 2
совершенно не могу понять роль i в этом объявлении
f x = (x, 0)

data T x = T { a :: x, b :: Int }

это синтаксис аргументов
источник