【问题标题】:Haskell interpreter on Android? [closed]Android上的Haskell解释器? [关闭]
【发布时间】:2011-08-15 04:59:42
【问题描述】:

是否有可以在 Android 上安装的 Haskell 解释器(带有标准库)?

以便拥有 Android 设备的人可以在 Android 设备上做一些 Haskell 练习:在 Haskell 中编写和运行一些示例代码。

【问题讨论】:

  • 编写和执行小sn-ps代码的能力对于学习编程和真正的编程/软件开发至关重要。当您在考虑某事时,能够在 GHCi 中测试一小段 sn-p 代码很方便。这个问题询问如果您手中有 Android 设备(并且正在编写/精心编写 Haskell 程序),这是否可能。这怎么可能是题外话?
  • 自今年(2020)you can run ghc and ghci on Termux。在您的 Android 上安装 Termux 应用程序,然后执行:pkg install unstable-repo; pkg install ghc
  • @erik 一条评论 - ghci 仍然不可用 :(
  • 看起来 ghc 在该存储库中不可用。

标签: android haskell interpreter


【解决方案1】:

我刚刚在 Android Market 中找到了IDEone,它会将您的代码发送到在线服务。它可以工作,但在 Android 上编程并不好玩。顺便说一句:如果您不想注册,请参阅BugMeNot

【讨论】:

  • 嗯,谢谢!虽然我不确定我是否可以在那里发送一堆源文件(模块)......我的兴趣是让人们评估使用我们预先在他们的 Android 上编写的模块的东西。
  • 这是一个禁忌,因为它会损害一个人的隐私。
【解决方案2】:

对于一些负面信息,我在 Android 上看到的所有 GHC 工作(例如http://ipwnstudios.com/)都是基于交叉编译,而不是为 android 或 ARM 构建 GHC。

【讨论】:

    【解决方案3】:

    从imz记笔记,你只需要

    • ConnectBot 或类似
    • 远程机器
      • Vim、Emacs 或类似产品
      • runghc / ghci / hugs / yourfavoritehaskellinterpreterorcompiler

    它不像专用应用程序或脚本层那样可靠,但老实说,对于您的用例,它会提供与这些选项几乎完全相同的功能(如果不是更多的话)。它就像网站一样“移动”(仅取决于主机的正常运行时间和客户端的连接性)。

    【讨论】:

    • 这似乎是使用 Haskell 代码非 x86 平台的前进方向。希望有人能提供一个用例和 $$$ 为 Haskell 提供全功能的 ARM 运行时。
    • 不是解决方案,因为根据定义它不是on Android。您不能只在超级计算机上运行《孤岛危机》,将视频流式传输到手机/从手机输入,然后说您的手机“运行”《孤岛危机》!
    【解决方案4】:

    Hugs 是用 C 语言编写的,非常便携。应该可以移植到安卓。

    【讨论】:

    • 我只是想编译它,不幸的是它不起作用:检查构建系统类型... i686-pc-linux-gnu 检查主机系统类型... arm-unknown-linux- gnu 检查目标系统类型... arm-unknown-linux-gnu 配置:错误:Hugs98 尚不支持不同的构建/主机(即交叉编译)
    【解决方案5】:

    令人惊讶的是,我找不到任何现有的适用于 Android 的 Haskell 解释器。

    但这里有一些关于为 Android 上的脚本层编写 own interpreter 的说明。这是假设您愿意尝试将 haskell 函数映射到 Java android 函数之上(我知道这不是一个完美的解决方案)。您还需要参考他们为 Scala 编写的脚本层,因为那是最接近 Haskell 的层(我承认这不是很接近)。

    否则,不应该有任何理由无法使用 NDK 直接为 Android 编译任何 Haskell implementations。只要它们是用 C 编写的,它们就可以在 Android 上运行。对于 C++,这有点棘手,因为 Android 没有所有 C++ 头文件。

    【讨论】:

    • 是的,许多解释语言已经被移植,但我认为还没有人开始使用 Haskell。我不认为这会非常困难,虽然我一直想试一试但没有找到时间。
    【解决方案6】:

    您可以在移动浏览器中使用tryhaskell.org。它将接受任何有效的表达式,但请记住,您无法定义自己的数据类型。

    【讨论】:

    • 但是如果我想提供一些我自己的带有定义(包括类型定义)的源代码,并使用它解释更多的表达式。
    • 因此,通过 SSH 连接到具有 GHC 或 Hugs 的机器可能是一种可行的解决方案(尽管根本不是移动设备)。
    • 看起来 tryhaskell.org 使用了基于 JSON 的 API。这意味着可以在更移动友好的本地界面中复制此功能,尽管它仍然仅适用于 oneliners 并且仍然需要互联网连接才能完成。本质上,用Java重新实现tryhaskell.org/js/tryhaskell.js的相关部分并将其包装在一个GUI中
    • @AlexHart 这个想法似乎是由 Bram Neijt 在“Try Haskell”应用程序中实现的——play.google.com/store/apps/details?id=nl.bneijt.tryhaskell!这是 2012 年的 7 月 22 日(甚至早于您的评论 :))不确定它是否是开源的,将研究他的网站以找出这一点——bneijt.nl
    • 是的,该应用是开源的 (GPLv3):github.com/bneijt/tryhaskell
    猜你喜欢
    • 2011-03-31
    • 2011-06-13
    • 1970-01-01
    • 2015-03-22
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    相关资源
    最近更新 更多