写点什么

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

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

关注

评论

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

第三周作业

Kenny

【架构师训练营 1 期】第三周作业

诺乐

第三周总结

积极&丧

极客大学架构师训练营

架构师训练营第一期——第三周总结

tao

第三周总结

fmouse

极客大学架构师训练营

Singleton Pattern & Composite Pattern

链表转换为二叉排序树、反应式编程 RxSwift和RxCocoa 、区块链hyperledger环境搭建、环境架构、John 易筋 ARTS 打卡 Week 20

John(易筋)

响应式编程 ARTS 打卡计划 hyperledger 链表转为二叉排序树 chmod

第三周课后练习 - 作业 1

致星海

Week_03 学习总结

golangboy

极客大学架构师训练营

架构第三周作业

Geek_Gu

极客大学架构师训练营

架构师训练营第三周学习笔记

一马行千里

学习 极客大学架构师训练营

架构师训练营第 1 期 02 周 作业

Geek_a01290

极客大学架构师训练营

架构师训练营第 1 期第三周课后练习题

郑凯元

极客大学架构师训练营

架构第三周总结

Geek_Gu

给计算机专业学生的几条建议

MySQL从删库到跑路

GitHub Linux vmware 大学生日常 计算机

一个草根的日常杂碎(10月2日)

刘新吾

随笔杂谈 生活记录 社会百态

一个草根的日常杂碎(10月4日)

刘新吾

随笔杂谈 生活记录 社会百态

架构师训练营第三周命题作业

一马行千里

极客大学架构师训练营 命题作业

第三周 作业一

mm马

极客大学架构师训练营

架构师训练营第一期-第三周学习总结

卖猪肉的大叔

极客大学架构师训练营

【架构师训练营第 1 期 03 周】 学习总结

Bear

极客大学架构师训练营

第三周 学习总结

mm马

极客大学架构师训练营

Week_03 作业

golangboy

第三周学习总结

熊桂平

极客大学架构师训练营

架构师训练营第一期 - 第三周课后作业

卖猪肉的大叔

【架构师训练营 1 期】第三周学习总结

诺乐

团队出游筹备清单

boshi

团队建设 团队文化

一个草根的日常杂碎(10月3日)

刘新吾

随笔杂谈 生活记录 社会百态

第三周作业

熊桂平

极客大学架构师训练营

第三周课后练习 - 作业 2

致星海

设计模式及相关应用案例

garlic

极客大学架构师训练营

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