![]() |
1
28
Haskell的好处是它允许您使用强大的抽象。你不是在思考1、0、地址和寄存器,而是计算、类型属性和连续体。
这两种说法之间有张力。在他的论文里
âStructured Programming with
知道如何使用Haskell和C++,而且如何以及何时使用 结合 他们很好地解决了各种问题。 我写的最后一个大项目 FFI 涉及使用用C语言编写的内部雷达建模库。重新实现它将是愚蠢的,表达应用程序其余部分的高级逻辑将是一件痛苦的事。我把它的大脑保存在Haskell中,需要时给C库打电话。
|
![]() |
2
11
以下是我的看法:
因此,让我说我精通Haskell、C、C++和Python,这里是我如何编写应用程序:
|
![]() |
3
7
这个答案比一个全面的答案更为简单,但我使用了哈斯克尔、Python和C++的混合语言,用于计算语言学的论文,以及我没有编写的几个C和java工具。我发现把所有事情都当作一个单独的进程来运行是最简单的,用Python作为胶粘代码来启动Haskell、C++和java程序。
C++是一个相当简单的循环,它可以对特征发生进行计数。基本上它所做的只是数学和简单的I/O。我实际上通过让Python胶水代码写出一个充满
Haskell是所有中间处理:从我使用的各种C++和java解析器中获取复杂的输出,过滤无关数据,并将其转换为期望的C++代码的简单格式。然后我把C++输出转换成胶乳标记(其他格式)。 这是一个你希望Python强大的领域,但是我发现Haskell使复杂结构的操作更容易;Python可能更适合于简单的行到行转换,但是我正在切割解析树,我发现我在用Python编写代码时忘记了输入和输出类型。
|
![]() |
4
5
我从来没有混合过两种语言,但你的方法让我觉得有点颠倒。 Haskell更适合高级操作,而C++可以被优化,并且对于紧环和其他性能关键代码最有好处。 Haskell最大的优点之一是将IO封装到monad中。只要这个IO不是时间关键,我就看不出有什么理由在C++中做。 对于GUI部分,您可能是对的。Haskell GUI库有很多,但是C++有强大的工具,如QtGrand,它简化了繁琐的任务。 |
![]() |
M. Walker · 无法键入多态[%bs.raw函数 7 年前 |
![]() |
Daniel Mur · 使用ffi在ruby中添加共享库 7 年前 |
![]() |
effectfully · 外部数据和垃圾收集 7 年前 |
![]() |
Pandemonium · 空类型声明 7 年前 |
![]() |
JeanJouX · 如何为递归类型创建可存储实例? 7 年前 |
![]() |
Kornel · 如何访问Rust FFI中的C全局变量/常量? 7 年前 |