时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

使用 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:023614
用户头像

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

关注

评论

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

新旧版本功能对比 | v1.5.0 全新升级

BinTools图尔兹

数据库 社区版 版本更新

面试官:谈谈分布式一致性机制

Java永远的神

程序员 分布式 微服务 后端 架构师

干货分享|金融机构如何通过标签画像实现精细化客户运营?

索信达控股

现在学C4D还是Blender好?这俩有啥区别?

Finovy Cloud

blender C4D

行业盛会丨九科信息亮相第十一届中国电子信息博览会(CITE2023),与您共享科技盛宴

九科Ninetech

NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性能调优、模型压缩算法等

汀丶人工智能

人工智能 自然语言处理 深度学习 关系抽取 命名实体识别

EasyMR 安全架构揭秘:如何管理 Hadoop 数据安全

袋鼠云数栈

大数据

关于FTP文件传输协议说明,带你了解更详细的文件传输协议

镭速

上传了ipa但在苹果App Store中没有看到构建版本的问题

【论文解读】不和谐区域定位

合合技术团队

人工智能 图像识别 图像处理

漫谈 ChatGPT 与问答式 BI

观远数据

数据分析 BI ChatGPT

面试还不懂Netty,看这篇文章就够了!

程序员小毕

Java 程序员 后端 Netty 架构师

阿里内部都在疯传!企业级Spring Boot 项目开发实战教程,我先肝了

程序知音

Java 微服务 springboot java架构 Java进阶

携多款产品亮相“深圳先进制造业集群展”,华秋积极探索发展机遇

华秋电子

Redis崩吗?来一起搞定 Redis 实践中的常见问题!

Steven

redis

MobTech ShareSDK|分享报错怎么办

MobTech袤博科技

OpenSea交易平台开发NFT系统部署技术

薇電13242772558

NFT

华秋PCB生产工艺分享 | 第十一道之成型

华秋电子

在生产环境中运行 grpc 服务所面临的挑战

蓬蒿

golang gRPC

【福利】ChatGPT免费体验期延长,商用版正式开启预约!

BeeWorks

GOPS 全球运维大会来了,龙蜥社区邀您一起了解“系统运维”

OpenAnolis小助手

开源 操作系统 内核 龙蜥社区 GOPS全球运维大会

苹果电脑软件应用打开出现意外退出、崩溃问题解决办法

互联网搬砖工作者

选择低代码,帮企业数字化转型提交一份满分答卷

加入高科技仿生人

软件开发 低代码 数字化 数字转型

智慧公共厕所,重构城市公共服务的新模式@光明源智慧公厕

光明源智慧厕所

智慧城市

详解 Flink Catalog 在 ChunJun 中的实践之路

袋鼠云数栈

flink

EMQ&阿里云Lindorm联合方案:解决物联网关键业务场景数据处理难题

EMQ映云科技

阿里云 物联网 IoT 数据处理 企业号 4 月 PK 榜

PCB拼版对SMT组装的影响,华秋一文告诉你

华秋电子

关于 IDP 的五大认知误解

SEAL安全

IdP 平台工程

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