Вызов Ptrs функции FFI Haskell из C

Я пытаюсь заставить работать следующий код:

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

Я предполагаю, что интерфейс между языками не работает как я и думал. Есть ли способ сделать то, что я пытаюсь сделать?

7
задан Chris Martin 17 March 2017 в 05:17
поделиться