Anonymous
неуместно
Сейчас бы смех над иронией был неуместен
Влод
а или это выше по диалогу нужно смотреть?
Alexander
код суммирует четные числа
Sasha
ок, evenSum :: определяем тип функции, дальше говорим, что even принимает l и возвращает accumSum, accumSum в свою очередь принимает 2 аргумента и мы не определяем ее тип тк он не особо важен, правильно?
Alexander
но он совершенно неидеоматичен..
Alexander
тип не указали, т.к. автор ленивая сволочь (извините) а компилятор выведет тип сам
Alexander
обычно принято для top-level деклараций писать тип
Alexander
т.к. это проще читать минимум
Sasha
а почему мы пишем evenSum l, а не evenSum [l]
Sasha
ой все
Sasha
я понял
Alexander
потому-что тип аргумента там [Integer] а не [[Integer]]
Alexander
@sashasashasasha151 ну на все впросы ответить можно и просто, и сказать как написать по человечески
Alexander
просто сделайте за меня все, это не правильно, же. так можно только если студент а это надо сдать иначе завтра отчисление
Alexander
но это немного другой формат общения:)
Alexander
@quetzal ping?
Alexander
> A thread can only use one transaction at a time, plus any child transactions. Each transaction belongs to one thread. See below. The MDB_NOTLS flag changes this for read-only transactions.
т.е. я не могу запустив RO транзакцию запустить ещё и RW в том же треде?
Quet
угу, но MDB_NOTLS кажется плохая идея обычно, т.к. становится надо руками синхронизироваться между потоками
Quet
а у тебя чего, есть какие-то долгоживущие транзакции?
Alexander
у меня следующая ситуация: есть транзакция где из базы вычитывается много всего, потом половина вычисленного используется при сохранении
Alexander
соотвественно у меня 2 варианта: 1 - Ro транзакция, перед завершением вычитываем все в память в haskell, потом открываем RW и все сохраняем (сейчас так)
Alexander
но было бы круче, если бы я эти данные мог использовать в RW транзакции, чтобы не нагружать haskell heap
Dmitry
@qnikst а у вас в проекте много различных версий типов для safecopy ?
Dmitry
и как вы боретесь с бардаком при этом
Alexander
пока больше 2 не было
Dmitry
там явно нужна какая-то очень жесткая дисциплина
Dmitry
или подход
Alexander
у нас ещё классная штука почти появилась
Alexander
теперь у типов в базе есть UUID, и можн старые типы складывать в Foo.Old
Alexander
все равно все будет работать и тип будет верно находиться, несмотря даже на то safecopy поддерживает или нет
Alexander
но я чутка не доделал пока
Dmitry
да меня не сама даже база напрягает
Dmitry
а то, что происходит при росте числа версий типов при большом количестве этих самых типов
Alexander
мы планируем выкидывать старые
Alexander
со временем
Dmitry
в общем я ничего умнее пока не придумал, чем в Internal вводить явные префиксы версии для типов, которые `SafeCopy``
Dmitry
module Data.Tourseek.Model.Internal.V0_1_3_0.Room where
import Data.Tourseek.Model.Internal.V0_1_3_0.Language(Language)
Dmitry
и в Internal импорт нужной текущей версии
Dmitry
тогда и выкидывать можно будет просто стирая весь каталог
Dmitry
кажется.
Alexander
похоже на то
Нурлан
Евгений
https://en.wikipedia.org/wiki/Effect_system
Влод
> Effects are a classification of computations independent of the ex- plicit inputs and outputs of those computations.
из Tate
Нурлан
А на русском что это значит?
Нурлан
Я думаю я не правильно перевёл с английского
Нурлан
Ex-plicit input это что?
Нурлан
И что за "те" вычисления?
Alexander
это знак переноса :)
Alexander
в слове ex-plicit
Alexander
ну перевод такой, что эффекты - это вычисления, независимые от эксплицитно указанного ввода-вывода типа
Влод
эксплицит можно же перевести как явное?
Влод
или это укоренившиеся самобытное слово в данном контексте?
Alexander
Можно думаю )
Alexander
Но я по-английски привык
Влод
ну имплисит можно было бы понять, тк в скале есть имплисит, в идрисе и как бы в контексте проще сказать имплисит параметры а не "неявные параметры"
Влод
а здесь ни к чему
Donat
по-моему узкоспециализированные тексты очень трудно перевести на русский, лучше английский учиться понимать
Alexander
++
Alexander
Когнитивный оверхэд от поддержания 2х словарей
Alexander
Без каких-либо плюсов
Donat
вот да, были бы ещё какие-то плюсы от этого...
Влод
Ну двум русским, владеющим английским, ок разговаривать на узкоспециализированные темы. Думаю мозг с такой нагрузкой изи справляется.
Alexander
все же я согласен с тем, что тут можно было сказать явный
Alexander
=)
Alexander
так я тоже согласился :)
Нурлан
Нурлан
У меня сразу наводящий вопрос появился. А эти эффекты связаны только временем? Поясню. Например, сработала одна функция изменила параметр, потом этот параметр подцепила другая функция и уже выдала другой результат. Или существуют еще какого-то рода эффекты?
Alexander
Вот по Tate не только
Alexander
Например у тебя есть Int -> Int -> Maybe Int для целочисленного деления, и оно может быть Nothing если что-то выше развалилось, и из параметров и результа это не понять
Alexander
Плохо сказал, но с телефон не удобно сейчас
Нурлан
Влод
давай определимся, знаком ли ты знаком ли ты со статьей Moggi "Computational lambda-calculus and monads" 1989 года
Влод
Ну я этот момент воспринял так, что Maybe может выражать вычисления с ошибкой, а List может выражать недетерменированные вычисления
Но ничего такого они не делают
Нурлан
igo
Влод
мне кажется здесь Nothing очень даже явно зависит от явно входящих параметров, мы же все-таки функции воспринимаем не как таблицы "ключ-значение"
Влод
ответь на это тогда