- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
/*
https://habr.com/post/246009/
Это вторая статья в цикле «Теория категорий для программистов».
...
Я хотел бы сказать вам, что есть шаблон в стандартной библиотеке С++,
который принимает две функции и возвращает их композицию, но такого
нет.
Примечание переводчика: но такой не сложно написать на С++14 (я опускаю
тонны деталей владения и шаблонной магии для проверок, что эти функции
и тип аргумента действительно можно компоновать):
*/
template <typename T>
struct function_arg: public function_arg<decltype(&T::operator())> {};
template<typename ReturnType, typename Arg>
struct function_arg<ReturnType(Arg) const> {
using type = Arg;
};
template<typename ClassType, typename ReturnType, typename Arg>
struct function_arg<ReturnType(ClassType::*)(Arg) const> {
using type = Arg;
};
template<typename T>
using function_arg_t = typename function_arg<T>::type;
template<typename F, typename G>
auto compose(F&& f, G&& g) {
return [f = std::forward<F>(f), g = std::forward<G>(g)]
(function_arg_t<F>&& a) {return g(f(std::forward<function_arg_t<F>>(a)));};
}
j123123 22.10.2018 12:09 # +1
Поэтому я за C
https://wandbox.org/permlink/NkjNP0ByGwPkd5yt
OBEH 22.10.2018 12:18 # 0
j123123 22.10.2018 12:41 # +2
guest8 22.10.2018 16:47 # −999
guest8 22.10.2018 16:59 # −999
gost 22.10.2018 17:57 # 0
guest8 22.10.2018 18:16 # −999
gost 22.10.2018 18:19 # 0
guest8 22.10.2018 18:22 # −999
ASD_77 24.10.2018 17:00 # 0
CJlEW 23.10.2018 10:21 # +1
https://ideone.com/nU8tUC
guest8 23.10.2018 11:11 # −999
CJlEW 23.10.2018 11:52 # 0
ASD_77 24.10.2018 17:01 # 0
6yJlb 24.10.2018 17:27 # 0
А ЕТО ШО ЗА ХУЙНЯ???
http://rosettacode.org/wiki/Sudoku#Prolog
Я там даже алгоритма не вижу!
j123123 26.10.2018 11:16 # 0
j123123 26.10.2018 11:19 # 0
SMT решатели - примерно та же хуйня
https://news.ycombinator.com/item?id=14448755