Size: a a a

2021 May 26

ΑZ

Αλεχ Zhukovsky in rust_offtopic
но вообще затем же зачем в графах разделяют ребра и узлы
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
прост так удобно, такое определение
источник

AN

Alex Noname in rust_offtopic
так а что это за книжка была
источник

TK

Traveller Kolsky in rust_offtopic
Ещё бы знать, что такое термы
источник

B

Börgar in rust_offtopic
так такие пруфы строить ессесна
источник

AN

Alex Noname in rust_offtopic
выше же определение о_О
источник

TK

Traveller Kolsky in rust_offtopic
Дяди-то умные, но понимаю только колхозно
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Type_theory_and_formal_proof Nederpelt
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
нет, такие пруфы норм
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
у меня есть стейтмашина в компайл тайм
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
data GameCmd : (ty : Type) -> GameState -> (ty -> GameState) -> Type where
   NewGame : (word : String) -> GameCmd () NotRunning (const (Running 6 (length (letters word))))
   Won  : GameCmd () (Running (S guesses) 0) (const NotRunning)
   Lost : GameCmd () (Running 0 (S guesses)) (const NotRunning)
   Guess : (c : Char) -> GameCmd GuessResult (Running (S guesses) (S letters))
                                                                           (
                                                                               \res => case res of
                                                                                   Correct => Running (S guesses) letters
                                                                                   Incorrect => Running guesses (S letters)
                                                                           )
   ShowState : GameCmd () state (const state)

   Message : String -> GameCmd () state (const state)
   ReadGuess : GameCmd Char state (const state)

   Pure : (res : ty) -> GameCmd ty (state_fn res) state_fn
   (>>=) : GameCmd a state1 state2_fn -> ((res : a) -> GameCmd b (state2_fn res) state3_fn) -> GameCmd b state1 state3_fn
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
зацените матч в типах
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
или то что GameCmd имеет тип
GameCmd<t:T, S, Fn(t -> S)>
источник

AN

Alex Noname in rust_offtopic
о там есть глава types dependent on types
источник

AN

Alex Noname in rust_offtopic
и types dependent on terms
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
типы зависимые от типов это обычные генерики
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
а второе это уже полноценные завтипы, да
источник

TK

Traveller Kolsky in rust_offtopic
Не люблю теоремы. Начал вчитываться, там определяют не термы, а лямбда-термы, откуда-то берут M и N (Множества? Подмножества? Семейства? Алфавиты? Что это?), не объясняют, что из себя переменные представляют, берут и делают тупл, который как-то ни к селу, ни к городу. Обмазали всё локальными нотациями, пойди и пойми их потом.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ну там это типа 50ая страница, часть определений даны выше, часть ты уже должен знать (типа что такое множество)
источник

AN

Alex Noname in rust_offtopic
то не теорема. Кек
источник