Я пытаюсь заставить работать следующий код:
sample_hs :: CInt -> (CInt -> CInt)
sample_hs x = (x+)
foreign export ccall sample_hs :: CInt -> (CInt -> CInt)
Я хотел бы иметь возможность сделать что-то вроде этого in c:
pf = sample_hs(2);
result = pf(3); //Should be 5;
Однако, когда я пытаюсь это сделать, я получаю сообщение об ошибке:
error: слишком мало аргументов для функции sample_hs
Я предполагаю, что интерфейс между языками не работает как я и думал. Есть ли способ сделать то, что я пытаюсь сделать?