Size: a a a

2020 February 21

IC

Ilya Chernoudov in pro.net
Ayrat Hudaygulov
import Data.List

takeValids :: Int -> [Int] -> [[Int]]
takeValids n = filter (all (<= n) . take n) . permutations


takeValids 3 [1..5]

[[1,2,3,4,5],[2,1,3,4,5],[3,2,1,4,5],[2,3,1,4,5],[3,1,2,4,5],[1,3,2,4,5],[1,2,3,5,4],[2,1,3,5,4],[2,3,1,5,4],[1,3,2,5,4],[3,1,2,5,4],[3,2,1,5,4]]


функция берет список задач (допустим 1..5) и некий предел (3) который определяет какие задачи должны выполниться раньше

как видишь аутпут выдал все варианты где задачи 1 2 3 появляются в первых трех позициях
ёбаные эльфы....
источник

E

EgorBo in pro.net
свидетели святого Сайма
источник

IC

Ilya Chernoudov in pro.net
Ayrat Hudaygulov
import Data.List

takeValids :: Int -> [Int] -> [[Int]]
takeValids n = filter (all (<= n) . take n) . permutations


takeValids 3 [1..5]

[[1,2,3,4,5],[2,1,3,4,5],[3,2,1,4,5],[2,3,1,4,5],[3,1,2,4,5],[1,3,2,4,5],[1,2,3,5,4],[2,1,3,5,4],[2,3,1,5,4],[1,3,2,5,4],[3,1,2,5,4],[3,2,1,5,4]]


функция берет список задач (допустим 1..5) и некий предел (3) который определяет какие задачи должны выполниться раньше

как видишь аутпут выдал все варианты где задачи 1 2 3 появляются в первых трех позициях
а в общих чертах оно работает как?
источник

AH

Ayrat Hudaygulov in pro.net
Ilya Chernoudov
а в общих чертах оно работает как?
функция берет список задач (допустим 1..5) и некий предел (3) который определяет какие задачи должны выполниться раньше
источник

AH

Ayrat Hudaygulov in pro.net
:D
источник

IC

Ilya Chernoudov in pro.net
перебирает варианты или обходя граф наполняет результаты?
источник

AH

Ayrat Hudaygulov in pro.net
ну есть список задач [1,2,3]
permutations составляет список все перестановок

[1,2,3], [1,3,2], [3,2,1] …
далее мы фильтруем те, которые не подходят по критерию
источник

IC

Ilya Chernoudov in pro.net
собственно сколько раз вызовется filter?
источник

IC

Ilya Chernoudov in pro.net
Ayrat Hudaygulov
ну есть список задач [1,2,3]
permutations составляет список все перестановок

[1,2,3], [1,3,2], [3,2,1] …
далее мы фильтруем те, которые не подходят по критерию
блять, дак это полный перебор
источник

AH

Ayrat Hudaygulov in pro.net
Ilya Chernoudov
блять, дак это полный перебор
Нууууу… в хаскеле возможно не полный
источник

AH

Ayrat Hudaygulov in pro.net
он же ленивый
источник

IC

Ilya Chernoudov in pro.net
Ayrat Hudaygulov
Нууууу… в хаскеле возможно не полный
тогда никакого колдунства
источник

IC

Ilya Chernoudov in pro.net
ок, спасибо!
источник

IC

Ilya Chernoudov in pro.net
Ayrat Hudaygulov
import Data.List

takeValids :: Int -> [Int] -> [[Int]]
takeValids n = filter (all (<= n) . take n) . permutations


takeValids 3 [1..5]

[[1,2,3,4,5],[2,1,3,4,5],[3,2,1,4,5],[2,3,1,4,5],[3,1,2,4,5],[1,3,2,4,5],[1,2,3,5,4],[2,1,3,5,4],[2,3,1,5,4],[1,3,2,5,4],[3,1,2,5,4],[3,2,1,5,4]]


функция берет список задач (допустим 1..5) и некий предел (3) который определяет какие задачи должны выполниться раньше

как видишь аутпут выдал все варианты где задачи 1 2 3 появляются в первых трех позициях
а как ты на таком программируешь?
источник

IC

Ilya Chernoudov in pro.net
тоже перебором, пока не начнёт компилироваться?
источник

AH

Ayrat Hudaygulov in pro.net
У него есть компилятор с LSP
источник

AH

Ayrat Hudaygulov in pro.net
там даже иногда читабельные ошибки
источник

AH

Ayrat Hudaygulov in pro.net
источник

IC

Iλyα Che in pro.net
Ayrat Hudaygulov
import Data.List

takeValids :: Int -> [Int] -> [[Int]]
takeValids n = filter (all (<= n) . take n) . permutations


takeValids 3 [1..5]

[[1,2,3,4,5],[2,1,3,4,5],[3,2,1,4,5],[2,3,1,4,5],[3,1,2,4,5],[1,3,2,4,5],[1,2,3,5,4],[2,1,3,5,4],[2,3,1,5,4],[1,3,2,5,4],[3,1,2,5,4],[3,2,1,5,4]]


функция берет список задач (допустим 1..5) и некий предел (3) который определяет какие задачи должны выполниться раньше

как видишь аутпут выдал все варианты где задачи 1 2 3 появляются в первых трех позициях
А что это за оператор точка в параметрах фильтра? O_o
источник

AH

Ayrat Hudaygulov in pro.net
Iλyα Che
А что это за оператор точка в параметрах фильтра? O_o
<<
источник