LINUX.ORG.RU

История изменений

Исправление red75prim, (текущая версия) :

раст лучше не становится.

Ну, блин, уже не знаю как и объяснить.

Template metaprogramming в С++ может быть описано как нетипизированное лямбда-исчисление. Дженерики в расте - это типизированное лямда-исчисление. Оно не хуже, оно другое.

Напишите zip на frunk, чтобы нам было о чем говорить.

Можно и без франка написать (рекурсия на уровне типов по туплу (Head1, Tail1), где Tail1 - это (Head2, Tail2) или () и т.д. ) Но сначала скажите, чем (a).zip(b).zip(c) и т.д., не нравится? Тем, что там ).zip( вместо запятой?

Потому что zip с рекурсией по туплам будет выглядеть так

Zip::zip((a, (b, (c, ()))));

Как я уже говорил поддержка на уровне типов операции (A, B, C, …) -> (A, (B, C, …)) на уровне языка конечно не помешала бы.

Исправление red75prim, :

раст лучше не становится.

Ну, блин, уже не знаю как и объяснить.

Template metaprogramming в С++ может быть описано как нетипизированное лямбда-исчисление. Дженерики в расте - это типизированное лямда-исчисление. Оно не хуже, оно другое.

Напишите zip на frunk, чтобы нам было о чем говорить.

Можно и без франка написать (рекурсия на уровне типов по туплу (Head1, Tail1), где Tail1 - это (Head2, Tail2) или () и т.д. ) Но сначала скажите, чем (a).zip(b).zip(c) и т.д., не нравится? Тем, что там ).zip( вместо запятой?

Потому что zip с рекурсией по туплам будет выглядеть так

Zip::zip((a, (b, (c, ()))));

Как я уже говорил поддержка операции (A, B, C, …) -> (A, (B, C, …)) на уровне языка конечно не помешала бы.

Исправление red75prim, :

раст лучше не становится.

Ну, блин, уже не знаю как и объяснить.

Template metaprogramming в С++ может быть описано как нетипизированное лямбда-исчисление. Дженерики в расте - это типизированное лямда-исчисление. Оно не хуже, оно другое.

Напишите zip на frunk, чтобы нам было о чем говорить.

Можно и без франка написать (рекурсия на уровне типов по туплу (Head1, Tail1), где Tail1 - это (Head2, Tail2) или () и т.д. ) Но сначала скажите, чем (a).zip(b).zip(c) и т.д., не нравится? Тем, что там ).zip( вместо запятой?

Потому что zip с рекурсией по туплам будет выглядеть так

Zip::zip((a, (b, (c, ()))));

Поддержка операции (A, B, C, …) -> (A, (B, C, …)) на уровне языка конечно не помешала бы.

Исходная версия red75prim, :

раст лучше не становится.

Ну, блин, уже не знаю как и объяснить.

Template metaprogramming в С++ может быть описано как нетипизированное лямбда-исчисление. Дженерики в расте - это типизированное лямда-исчисление. Оно не хуже, оно другое.

Напишите zip на frunk, чтобы нам было о чем говорить.

Можно и без франка написать (рекурсия на уровне типов по туплу (Head1, Tail1), где Tail1 - это (Head2, Tail2) или () и т.д. ) Но сначала скажите, чем (a).zip(b).zip(c) и т.д., не нравится? Тем, что там ).zip( вместо запятой?

Потому что zip с рекурсией по туплам будет выглядеть так

Zip::zip((a, (b, (c, ()))));