Искам да напиша функция (модул) на Haskell от тип: String -> String
за извикване в Android. Най-лесният метод изглежда да използва JHC за генериране на C код, след което да използва Android NDK за генериране на споделена библиотека, но не можах да намеря документация за JHC. JHC също използва ли Cabal за изграждане? JHC достатъчно стабилен ли е, за да използва Parsec или Attoparsec библиотека?
как да насоча haskell към android с помощта на jhc?
Отговори (2)
През 2011 г. имах ограничен успех, използвайки JHC по подобен начин, но насочен към iOS вместо Android. Първоначалните резултати бяха добри само за стартиране на нещата, но ние в крайна сметка отхвърли JHC в полза на GHC точно защото започнахме да получаваме странни грешки по време на компилиране на програми, които използват Parsec. Имайте предвид, че това беше през 2011 г., така че JHC може да се е подобрил много оттогава.
Ако искате да дадете шанс на GHC, бих препоръчал да разгледате този пример който използва GHC 7.8 за компилиране на игра за Android. Все още не съм го използвал от гняв, но успях да го накарам да работи на Docker, като стигнах до възстановяване на играта от нулата и инсталирането й на истинско устройство с Android, така че подходът определено има заслуги.
АКТУАЛИЗАЦИЯ от август 2017 г.: Мориц Ангерман публикува подробни инструкции за насочване към Android с кръстосано компилатор на GHC.
Е, компилатор, наречен eta, може би най-удобният начин сега. Той е насочен към jvm и ще създаде jar файл, така че можете директно да го поставите във вашия проект