Java有Scala ,.NET有F# 这两种语言都高度集成到各自的Java和.NET平台中。 例如,可以用Scala编写类,然后用Java扩展。

是否存在可与C ++高度互操作的等效功能语言?

===============>>#1 票数:8

John Skaller的Felix语言旨在与C ++互操作并提供功能范例。

但是这样做有问题。 函数式语言提供了一流的函数,允许创建闭包:从已定义的环境中捕获并携带值的函数。这使得无法静态地确定值的生存期(因为闭包可能带有一个值)它的范围),因此,有效地需要垃圾收集器,但C ++不是垃圾收集。

===============>>#2 票数:7

C ++没有Java或.NET意义上的生态系统。 没有虚拟机,甚至没有运行时环境,只有一个高度专业化的标准库,设计在纯功能环境中不能很好地运行。 C ++甚至没有ABI标准。

考虑到所有事情,我不确定你的意思/期望。

===============>>#3 票数:7

啊,还有别的。 虽然这肯定不是你的意思,但C ++中的模板元编程纯粹是功能性的。

===============>>#4 票数:6

如前所述,我不太确定C ++的“生态系统”。 但是Haskell确实有一个外部函数接口,它允许你从C调用Haskell和Haskell函数的C函数。

再说一遍,那就是C,我不确定C ++ FFI到底有多远......

===============>>#5 票数:3

由于Scala编译成Java字节码而F#编译成.NET字节码,因此可以在各自的虚拟机上运行。 正确的比较是,如果有一些函数语言编译为机器相关的代码,准备在计算机上运行,​​是的,有。

我不认为这就是你的意思,但我要提供的最好的是FC ++ Boost是另一个具有许多功能的库,可以识别这些功能来自函数式编程。

但是,我敢打赌,没有'真正的'函数式编程C ++:es。

===============>>#6 票数:3

'D'语言被设计为C ++的继承者。 Andrei Alexandrescu正在为D 2.0开发一个D的纯功能子集。 我猜D与C ++很好地互操作。

===============>>#7 票数:1

我同意我不确定C ++的生态系统。 OCaml非常适合在.NET之外进行函数式编程。 F#也是基于它的。

===============>>#8 票数:0

这个问题发布于2008年。作为参考,C ++ 11以后支持函数式编程。 请参阅C ++中针对此功能编程更新的另一个讨论

===============>>#9 票数:-1

C ++可能不是纯粹的函数式语言,但STL的某些部分肯定是功能性的。

请参阅Bjarne Stroustrup FAQ (c ++的发明者)

  ask by pauldoo translate from so

未解决问题?本站智能推荐:

2回复

什么是可以与C ++混合的好的函数式语言? [关闭]

我想走功能语言的道路,因为我已经开始使用OO语言和多范式语言; 在最后一段时间里,我一直专注于C ++,在我的理解中,当你需要保持一致的状态时,功能语言会发光,并且它们经常被一些关键任务服务(如银行服务)使用。 我不想离开C ++,我想尝试混合,我也只对x86,ARM和Linux,Win
2回复

C ++ 0x(C ++ 11)作为函数式语言?

我想知道C ++ 0x(C ++ 11)(带有lambdas和完美转发)是否是函数式语言的超集。 有没有C ++没有的函数式语言的特性?
6回复

C ++中的函数式编程

有人可以指导我如何使用C ++进行函数式编程吗? 我可以参考一些好的在线资料吗? 请注意,我了解FC ++库。 我想知道如何仅使用C ++标准库来做到这一点。 谢谢。
1回复

C ++函数式编程代码片段

我一直致力于一个名为C ++ 11/14的功能编程特性的项目(我的大学之一)。 关于这些主题有几个现有的来源和类似的演示文稿,我发现不久前的一个包含几个我完全无法理解的代码片段(并且不知何故它们可以连接到函数式编程)。 片段A和B属于递归 , C属于懒惰评估 。 我想在下面与您分享:
3回复

C / C ++中的函数式编程?

我一直在阅读这篇文章: http : //en.wikipedia.org/wiki/Function_pointer ,我有点困惑。 由于C / C ++支持函数指针,这是否意味着它们通常支持函数式编程? 请注意,我实际上并不想使用C或C ++进行函数式编程,但我很好奇,因为我从未听说过C
9回复

C ++中的函数式编程。实施f(a)(b)(c)

我已经开始使用C ++进行函数式编程的基础知识。 我试图使函数f(a)(b)(c)返回a + b + c 。 我成功实现了函数f(a)(b) ,返回a + b。 这是它的代码: 我只是无法弄清楚如何实现函数f(a)(b)(c) ,正如我之前所说,它应返回a + b + c 。
3回复

是c ++模板元编程是函数式编程的一种形式

是c ++模板元编程是一种函数式编程吗? 如果是的话,为c ++模板元编程相关的非尾递归做一些像stackoverflow这样的陷阱吗? 对于这个问题中的阶乘模板示例,我想这是标准的函数式编程。 或者相似性只是肤浅的?
5回复

C ++ 11中的函数式编程,F#风格

我一直在研究C ++ 11中的新功能,看起来它可以使用它以非常实用的编程风格进行编程。 我已经习惯在F#中使用List,Seq,Array类型,我看不出为什么他们的成员无法移植到某种C ++ 11模板中。 对于混合函数式编程风格,您在使用C ++ 11与F#之类的东西中看到了哪些问题或优势?
4回复

如何在C ++ 11中使用函数式编程从地图中获取密钥?

在数学上, std::map<K,V> m是函数f m ,其中所有对域和范围元素(x,y)∈K×V,使得f m (x)= y。 所以,我想获得f m的域,即所有键的集合(或者可能是范围 - 所有值的集合)。 我可以用程序上 C ++ 11做到这一点,就像这样: 对?
6回复

函数式编程中纯函数的缺点[关闭]

函数式编程中的纯函数是没有副作用的函数。 其中一个含义是它不能改变输入参数的值。 这可以被视为内存利用的缺点吗? 例如,假设我有一个函数,它只需要一个列表并在其中添加另一个元素。 在C ++中,它可以很简单 这个函数显然没有使用传递对象已经占用的大量内存。 但在Haskel