Size: a a a

2021 July 10

AH

Ayrat Hudaygulov in F# Chat
так вынос в отдельные функции очень простой
источник

AH

Ayrat Hudaygulov in F# Chat
let abc = ...
источник

AH

Ayrat Hudaygulov in F# Chat
внутри другого let
источник

И

Иван in F# Chat
А для тасок CE вот этот самый модный?
https://github.com/rspeele/TaskBuilder.fs
источник

AH

Ayrat Hudaygulov in F# Chat
этот или Ply
источник

AH

Ayrat Hudaygulov in F# Chat
в Ply много всякой всячины для валуеТасок, юнитТасок и пр
источник

AH

Ayrat Hudaygulov in F# Chat
источник

VZ

Vlad Zaa in F# Chat
Или можно пуллреквест подождать про стейтмашины.
источник

IC

Ilya L Che in F# Chat
😏
источник

VZ

Vlad Zaa in F# Chat
/s
источник

AH

Ayrat Hudaygulov in F# Chat
* фотка ждуна *
источник

IC

Ilya L Che in F# Chat
Ждать незачем, надо просто ветку нужную собрать. А потом с собой таскать.
источник

VZ

Vlad Zaa in F# Chat
Ну чуть чуть  осталось же
источник

VZ

Vlad Zaa in F# Chat
Вот, правильный подход видно
источник

AH

Ayrat Hudaygulov in F# Chat
Я давно предлагаю превью выпускать, пусть смелые тестят
источник

И

Иван in F# Chat
Не могу понять как такое выражение работает
let move = (+) >> (>>) ((*) 2)
Оно эквивалентно
let move pos roll = pos + roll * 2
Если разворачивать её, то получается так:
на скрине красный (+) int -> int -> int
синий (умножение на 2) int -> int
зеленый - какая-то ебала, применение к int -> int композиции, что это вообще по смыслу такое?
ну и в конце происходит композиция плюса с этой ебалой
источник

AH

Ayrat Hudaygulov in F# Chat
каждый инфиксный оператор это функция

например (+)
let (+) a b = ....

такие функции ты можешь применять как инфиксные операторы

a + b
или как функции по обычным правилам функций
(+) a b

(>>) это тоже функция и инфиксный оператор
источник

AH

Ayrat Hudaygulov in F# Chat
тут в таком порядке надо раскрывать
1. (*) 2 это функция вида int -> int, которая будет умножать на два. назовём её mult2
2. (>>) mult2 это композиция mult2 с чем-нибудь. Сам (>>) имеет сигнатуру вида: (a -> b) -> (b -> c) -> (a -> c). Первый параметр ты подал - mult2, поэтому (>>) mult2 будет иметь вид (int -> c) -> (int -> c). пусть это будет функция wtf
3. осталось только (+) >> wtf
 (+) - это int -> int -> int. функции правоассоциативны, поэтому это то же самое что и int -> (int -> int)

теперь магия

int -> (int -> int)  >> (int -> c) -> (int -> c)

раскрываем генерик c в инт, схлопываем центр и получаем
int -> (int -> int)  >> (int -> int) -> (int -> int)

int -> int -> int
источник

AH

Ayrat Hudaygulov in F# Chat
но так никто не пишет из вменяемых.
источник

IC

Ilya L Che in F# Chat
Не мешай человеку ломать компилятор. Может баг найдёт.
источник