Size: a a a

2020 December 30

AA

A64m AL256m qn<co... in Haskell
но я помню сто лет назад для дотнета был генератор тестов на смт-солвере - пекс
источник

к

кана in Haskell
Yuuri
Подскажите, как задизайнить такую штуку. Есть типа-интерпретатор, и в нём в разных ситуациях нужно делать lookup информации о переменной или её имени, по порядку поискав во фреймах локального стека, в словарике полей текущего объекта, и в пачке глобальных. После этого в некоторых ситуациях переменную надо прочитать, а в некоторых записать (всё в State обрабатывается). Однако некоторые глобальные переменные могут быть константами; а если переменной нигде не было, её надо добавить к полям объекта. В итоге мне нужно как бы линзу, но уже «наведённую» на конкретное значение, при этом с Maybe-геттером (если её нет) и Maybe-сеттером (если это константа)
ничего не понял. В идеале нужно не искать информацию по переменной, а заранее во все переменные проставить всю информацию
источник

к

кана in Haskell
Serghei Iakovlev
Вчера за пивом товарищ скалист рассказал о таком вот проекте для скалы https://stainless.epfl.ch/

Мол вместо тестов ты пишешь человекочитаемую спеку, а оно по спеке либо само тестирует, когда кейсы простые, либо генерирует набор тестов. Стало интересно, а есть ли что-то подобное для хаскела?
дык это же просто проперти-тесты

https://hackage.haskell.org/package/QuickCheck
источник

AA

A64m AL256m qn<co... in Haskell
не, это не одно и то же
источник

к

кана in Haskell
ну по примерам отсюда все то же самое
https://epfl-lara.github.io/stainless/tutorial.html
источник

Y

Yuuri in Haskell
кана
ничего не понял. В идеале нужно не искать информацию по переменной, а заранее во все переменные проставить всю информацию
Ну там есть
type VarInfo = Type --пока только тип переменной
type Memory = M.Map Name VarInfo
data Builtin = Builtin
 { bGlobalVar :: Memory
 , bGlobalConst :: Memory
 }
data Context = Context
 { cLocal :: [Memory] --стек
 , cObjects :: M.Map Name Memory --поля объектов
 }
type Checker = RWS Builtin Log Context

и пока есть
getVar :: Variable -> Checker (Maybe VarInfo)
setVar :: Variable -> VarInfo -> Checker ()

в которых по сути дублируется логика поиска, где переменная должна лежать, хочется объединить в одну линзу и выразить через неё и get и set
источник

к

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

AA

A64m AL256m qn<co... in Haskell
кана
ну по примерам отсюда все то же самое
https://epfl-lara.github.io/stainless/tutorial.html
нет же. квикчек проблемные примеры находит случайно и композицией из проблемных примеров частей, а потом их минимизирует
а тут их солвер ищет
источник

к

кана in Haskell
а ок, про солвер не увидел ничего до этого
источник

AA

A64m AL256m qn<co... in Haskell
т.е. то что само тестирует ближе к ликвидхаскелю, наверное, а тесты, которые солвер генерит - такое в хаскеле не используется, хотя что-то типа такого было типа hipspec или там quickspec, но это тоже не совсем то, и это все не взлетело
источник

ЖК

Жук Короед in Haskell
А кто-нибудь free-theorems использует?
источник

IK

Ilya Kos in Haskell
А есть причина, по которой еще нет MonadFail (Either String)?
источник

TZ

Timofey Zakrevskiy in Haskell
Ilya Kos
А есть причина, по которой еще нет MonadFail (Either String)?
источник

IK

Ilya Kos in Haskell
:(
источник

IK

Ilya Kos in Haskell
Слушайте, а у Binary есть какие-то подводные камни?
источник

IK

Ilya Kos in Haskell
Его в проде нормально использовать?
источник

IK

Ilya Kos in Haskell
Если у меня другое сервис принимает opaque последовательность байтов, которую я потом обратно получаю
источник

in Haskell
Всем привет, хочу выучить хаскель, как лучше учиться, роадмап с гита
https://hub.packtpub.com/a-five-level-learning-roadmap-for-functional-programmers/
норм?
источник

in Haskell
а почему сообщество на русском да и еще такое большое, так много работы на хаскеле?
источник

A

Andrey in Haskell
курс на stepic.org могу порекомендовать
источник