Из того, что я знаю об зависимых типах, я думаю, что это возможно, но я никогда не видел примера этого раньше на зависимом языке, поэтому я не совсем уверен, с чего начать.
Что я хочу - это функция формы:
f : [Int] -> (Int -> Bool)
f : [Int] -> (Int -> Int -> Bool)
f : [Int] -> (Int -> Int -> Int -> Bool)
и т.д...
Эта функция принимает список n Ints
и возвращает предикатную функцию arity n, которая принимает Ints в качестве аргумента. Возможно ли это на языке с навязчивым языком? Как было бы реализовано что-то подобное?