android上的纯函数式编程

use*_*294 11 android jvm functional-programming

这个领域有进步吗?我希望能够在Haskell或类似语言的Android上编写纯功能代码.我已经尝试过使用Scala的一些例子,但开始时似乎很痛苦.我可以用来编写Android应用程序的其他功能JVM语言吗?

编辑:编写本机android应用程序的函数语言.我对JVM的错误.

Ser*_*rCe 6

我怀疑你能为Android编写类似Haskell的代码找到任何成熟的东西.您需要实现Android API所需的Java抽象(实现活动等).

但是如果你真的想用纯函数式的Android编写,你可以尝试用纯函数语言实现业务逻辑,编译成JVM并从Java类中调用它.这种方法比完全以纯粹的功能方式实现它要简单得多.

作为您的语言选择,您可以尝试

  • Frege,它甚至还有一个用于android的库 - froid

  • Eta lang,这是非常新的,可能没有人尝试过将其用于Android


Grz*_* D. 5

我要在摇篮方面具有无痛解决方案建立等,你只有两种选择:Java和科特林,当然你应该选择科特林 ;)

Kotlin具有您需要以功能样式编写的大部分内容:

  • 作为头等公民
  • 高阶函数
  • 不变的集合
  • varval像斯卡拉
  • if-else 作为声明
  • 模式匹配的元素(where语句)
  • 尾递归
  • 和更多...

如果您还包括funKTionalekotlinx.collections.immutable,你将拥有所有的功能一样好东西:OptionTry,钻营,记忆化,持久化数据结构等等...

要开始使用Kotlin,只需安装最新的Android Studio 3 Preview,它已经内置了Kotlin支持。

顺便说一句,不要被两极分化为“纯”功能;)毕竟,被100%设为“纯”意味着没有副作用,这意味着您的应用程序无法与用户互动;)

希望这可以帮助 :)