FC ++是否被任何开源项目使用? [英] Is FC++ used by any open source projects?

查看:101
本文介绍了FC ++是否被任何开源项目使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

FC ++ 库提供了一种有趣的方法来支持C ++中的函数式编程概念。



常见问题的简短示例:

  take(5,map(odd,enumFrom(1)))



FC ++似乎从Haskell中获得了很多灵感,从Haskell序言中重用了许多函数名。



我看到最近的文章,它已经在stackoverflow的一些答案中简要提到,但我找不到任何使用它在野外。



是否有任何开源项目积极使用FC ++?或过去使用它的项目的任何历史?



网站上有一个客户部分,但唯一的活动链接是同一作者(LC ++)的另一个图书馆。



作为背景:我正在寻找使用现有的C ++ API编写低延迟的音频插件,我正在寻找工具,它允许我写简洁的代码在功能样式。对于这个项目,我不想使用C ++库而不是使用单独的语言,以避免引入FFI绑定(因为复杂性)或垃圾收集(保持上限在亚毫秒范围内的延迟)。



我知道STL和Boost库已经提供了许多FP概念的支持 - 这可能是一个更实用的方法。我也知道其他有前途的方法,从函数式语言的代码生成音频DSP代码,如 FAUST 项目或Haskell < a href =http://hackage.haskell.org/cgi-bin/hackage-scripts/package/synthesizer>合成器包。

解决方案

我是FC ++的主要原始开发者,但我已经在六年多时间里没有工作。我没有跟上C ++ /提升很多在那段时间,所以我不知道FC ++如何比较现在。新的C ++标准(和像VC ++一样的实现)有一些东西,如lambda和类型推理帮助,使一些什么是在那里moot。尽管如此,仍然可能存在有用的位,例如惰性列表类型和类Haskell(以及类似命名的)组合器。所以我想试试看看。



(因为你提到实时,我应该提到的是列表使用引用计数,所以如果你'丢弃'一个长列表在析构函数中可能会有一个非平凡的等待,因为所有的单元格的引用计数都为零我认为通常在无限流/列表的流场景中,这是一个非问题,因为你通常只是 tail 进入流,并且只在流式传输时一次释放一个节点的事物。)


The FC++ library provides an interesting approach to supporting functional programming concepts in C++.

A short example from the FAQ:

take (5, map (odd, enumFrom(1)))

FC++ seems to take a lot of inspiration from Haskell, to the extent of reusing many function names from the Haskell prelude.

I've seen a recent article about it, and it's been briefly mentioned in some answers on stackoverflow, but I can't find any usage of it out in the wild.

Are there any open source projects actively using FC++? Or any history of projects which used it in the past? Or does anyone have personal experience with it?

There's a Customers section on the web site, but the only active link is to another library by the same authors (LC++).

As background: I'm looking to write low latency audio plugins using existing C++ APIs, and I'm looking for tooling which allows me to write concise code in a functional style. For this project I wan't to use a C++ library rather than using a separate language, to avoid introducing FFI bindings (because of the complexity) or garbage collection (to keep the upper bound on latency in the sub-millisecond range).

I'm aware that the STL and Boost libraries already provide support from many FP concepts--this may well be a more practical approach. I'm also aware of other promising approaches for code generation of audio DSP code from functional languages, such as the FAUST project or the Haskell synthesizer package.

解决方案

I'm the primary original developer of FC++, but I haven't worked on it in more than six years. I have not kept up with C++/boost much in that time, so I don't know how FC++ compares now. The new C++ standard (and implementations like VC++) has a bit of stuff like lambda and type inference help that makes some of what is in there moot. Nevertheless, there might be useful bits still, like the lazy list types and the Haskell-like (and similarly named) combinators. So I guess try it and see.

(Since you mentioned real-time, I should mention that the lists use reference counting, so if you 'discard' a long list there may be a non-trivial wait in the destructor as all the cells' ref-counts go to zero. I think typically in streaming scenarios with infinite streams/lists this is a non-issue, since you're typically just tailing into the stream and only deallocating things one node at a time as you stream.)

这篇关于FC ++是否被任何开源项目使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆