写点什么

使用 Haskell 和 Hubris 加强 Ruby

  • 2009-09-01
  • 本文字数:595 字

    阅读完需:约 2 分钟

在 Ruby 或者 Rails 应用中嵌入 C 代码是解决性能瓶颈的办法之一, RubyInline 大大简化了这个过程。Ruby 社区也紧紧地和其他的函数语言社区联系在一起,包括 Erlang、Caml 和 Haskell: Erlectricity 已经成为和 Erlang 连接的纽带,而 rocaml 则可以与 Objective Caml 进行交互。Apache 的 Thrift 则是以另外一种方式(通过 PRC 和序列化格式)与其他语言交互。

Mark Wotton 编写了 Hubris ,使得在 Ruby 中调用 Haskell 代码成为可能。你只需要安装 Haskell 平台所带的 ghc 来兼容 jhc (John 的 Haskell 编译器),不过你必须注意的是,jhc 只能运行在 Linux 或者 Mac 平台下。

一旦你有这些需求,你需要首先编写一个 Haskell 文件,在自定义的函数处添加额外的调用导出命令,例如 Test.hs

复制代码
fibonacci :: Int -> Int
fibonacci n = fibs !! n
where fibs = 0 : 1 : zipWith (+) fibs (tail fibs)

然后你需要调用jhc_builder.sh Test.hs来创建动态库(libdynhs.so)。
接下来你可以放心大胆地编写 Ruby 代码,并且使用 Ruby/DL 加载动态库调用导出的函数了。

复制代码
require 'dl/import'
module HaskyPants
extend DL::Importable
dlload "./libdynhs.so"
extern "int fibonacci_hs(int)"
end
puts HaskyPants.fibonacci_hs(12)

Mark 将会在九月份举办的 rorosyd 做一个关于 Hubris 的讲座。尽管只是初步意向,但是这个讲座肯定会吸引一些 Haskell 的用户。

查看英文原文: Empower Your Ruby With Haskell And Hubris

2009-09-01 01:023691
用户头像

发布了 90 篇内容, 共 39.2 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

AI生成PPT新功能!导入PPT创建模板,办公演示必备!

职场工具箱

人工智能 AI AIGC 效率软件 AI生成PPT

三句话生成 P5.js 粒子特效代码,人人都可以做交互式数字艺术

阿里巴巴云原生

阿里云 云原生 通义灵码 AI程序员 AI程序员体验官

小红书独立开发大赛:让你的宝藏应用被更多人看到

RTE开发者社区

DeepSeek R1 对编程语言未来的预测

孔令飞

《Operating System Concepts》阅读笔记:p147-p158

codists

操作系统

2025 年软件测试趋势:你准备好了吗?

FunTester

一天成为Java开发高手:用飞算JavaAI实现十倍提效

飞算JavaAI开发助手

下载量周榜前十,昆仑万维视频生成模型SkyReels-V1开源效果喜人

新消费日报

快手前端通用静态托管服务KFX演进历程:从崎岖土路到平坦高速

快手技术

前端

在一次出圈演讲,看到AI眼镜中的“科技哪吒”

脑极体

AI

Hugging Face 发布 Python WebRTC 库:构建实时音视频应用;微软 Magma:多模态跨数字物理世界丨日报

RTE开发者社区

谈谈 ES 6.8 到 7.10 的功能变迁(5)- 任务和集群管理

极限实验室

elasticsearch

片段式代码VS完整工程生成:飞算JavaAI如何让开发者告别碎片化开发?

飞算JavaAI开发助手

小米基于 Apache Paimon 的流式湖仓实践

Apache Flink

大数据 flink 实时计算

三句话生成 P5.js 粒子特效代码,人人都可以做交互式数字艺术

阿里云云效

阿里云 云原生 AI程序员 AI程序员体验官

RocketMQ 可观测性最佳实践

观测云

RocketMQ

使用Haskell和Hubris加强Ruby_Ruby_Sebastien Auvray_InfoQ精选文章