Пары на C++11 Реализовал на новом C++ (стандарт C++11) такое вот представление пар (для простоты это пары целых значений):
typedef std::function<int(std::function<int(int,int)>)> Pair;
Pair make_pair(int a, int b)
{
return [=] (std::function<int(int,int)> f)
{
return f(a, b);
};
}
int get_first(Pair p)
{
return p(
[] (int a, int b)
{
return a;
}
);
}
int get_second(Pair p)
{
return p(
[] (int a, int b)
{
return b;
}
);
}
Тривиально (канонически даже), но смешно довольно таки. Я думаю что людям, не знакомым с лямбда-исчислением, будет довольно прикольно разобраться в том, как это работает.
На Гитхаб что ли залить. Вдруг хедхантеры меня там найдут и 100500 денег предложат.