Возможно, не тот ответ, который вы ищете, но это может помочь ...
Замыкания не новы, они существуют с самого начала программирования (Lisp, Algol-60). Лучший способ узнать о том, как они используются, - взглянуть на зрелый язык, на котором они были всегда, и посмотреть, как люди их используют.
Функциональные языки и замыкания являются синонимами, обычно называемыми «программированием высшего порядка» - когда функции (методы) принимают другие функции в качестве аргументов, а функции можно создавать на лету (блоки). Так что, глядя на книгу по программированию на Хаскеле, это не плохой выбор, или, может быть, F #.
Если это кажется слишком радикальным, вы можете взглянуть на Ada 95, «обычный» язык со встроенными функциями, хотя это (прибыльный) нишевый язык, и его функции, вероятно, не используются широко.
Если вы хотите что-то относительно новое, посмотрите на C #, где встроенные функции были добавлены в v2. Встроенные функции C # имеют много тех же ошибок, что и Obj-C, и люди попадают в них с неосведомленным восторгом - так что ищите недавнюю книгу по C #, когда их использование стало более зрелым.
И в заключение, не злоупотребляйте блоками. Они являются очень мощным инструментом и, когда это применимо, могут дать очень хорошие решения. Однако при ненадлежащем использовании ... здесь будут драконы; -)