Можно ли в C сделать лямбда-функцию? С помощью cpp-макросов или gcc-extensions - не важно. Как-то на ум не идёт простое решение. Сложное не предлагать, ибо некрасиво :)
В C даже замыканий нету, какая нафик лямбда (да, я знаю, что это вещи формально не связанные).
Имхо, неименованную функцию внутри другого кода на C средствами языка сделать нельзя. Только если вызвать компилятор, загрузить получившийся объектник и т.д. - но ты же просил сложных решений не предлагать.
Не нужно пытаться использовать молоток в качестве микроскопа. В каждом языке лучше использовать приемы соответственные парадигмам, заложеннными создателями. Если хочешь использовать другие -- поменяй язык. Не можешь использовать другой язык -- что ж, если у тебя нет микроскопа, то молоток мало чем поможет.
(:Простой способ:) Написать на хаскеле, обработать ghc в состоянии "via-c" (то ли его собрать так нужно, то ли опция есть - не помню), вытащить промежуточный c-файл, прогнать оный через какой-то фильтр.
А что в точности сделать то нужно? Может заместо лямда-функции что-нибудь другое сгодицо? Репертуар вобщем небогат: указатели на функции, которыми можно при желании сделать нечто вроде динамически изменяемого кода, и примитивные макросы.