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

\u0026#xD;

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

\u0026#xD;

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

\u0026#xD;

\u0026#xD;fibonacci :: Int -\u0026gt; Int\u0026#xD;fibonacci n = fibs !! n\u0026#xD;  where fibs = 0 : 1 : zipWith (+) fibs (tail fibs)\u0026#xD;

\u0026#xD;

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

\u0026#xD;

\u0026#xD;require 'dl/import'\u0026#xD; \u0026#xD;module HaskyPants\u0026#xD;  extend DL::Importable\u0026#xD;  dlload \"./libdynhs.so\"\u0026#xD;  extern \"int fibonacci_hs(int)\"\u0026#xD;end\u0026#xD; \u0026#xD;puts HaskyPants.fibonacci_hs(12)\u0026#xD;

\u0026#xD;

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

\u0026#xD;

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

使用Haskell和Hubris加强Ruby相关推荐

  1. 卸载Notepad++!事实已证明,它更牛逼……

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:lucida lucida.me/blog/subl ...

  2. 收藏:因为有这篇Sublime Text使用教程,我立即卸载掉了Notepad+...

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:lucida 链接:http://lucida.me/blo ...

  3. Sublime Text使用教程【转】

    本文转载自:http://lucida.me/blog/sublime-text-complete-guide/ 摘要(Abstract) 本文系统全面的介绍了 Sublime Text,旨在成为最优 ...

  4. 如何设计一门语言(一)——什么是坑(a)

    这个系列的起因是这样的,王垠写了一篇喷go的博客http://www.yinwang.org/blog-cn/2013/04/24/go-language/,里面说go已经烂到无可救药了,已经懒得说了 ...

  5. Sublime Text 全程指引 by Lucida

    作者:Lucida 微博:@peng_gong 豆瓣:@figure9 博客园:@figure9 原文链接:http://zh.lucida.me/blog/sublime-text-complete ...

  6. sublime text全程指南【转载】

    前言(Prologue) Sublime Text是一款跨平台代码编辑器(Code Editor),从最初的Sublime Text 1.0,到现在的Sublime Text 3.0,Sublime ...

  7. 神级代码编辑器 Sublime Text 全程指南

    转载来自[http://mdsa.51cto.com/art/201507/484183_all.htm#topx] 摘要(Abstract) 本文系统全面的介绍了Sublime Text,旨在成为最 ...

  8. 官宣!2020年,这5类程序员要过苦日子!网友:明年咋活?!

    2020年就要来了,有人说:经历了2019年的"市场变革"后,未来这一年将会至关重要,是决定各自命运的定型年. 那么对于程序员来说,明年的风向标是如何?哪些编程语言会持续大热,哪些 ...

  9. python能做什么游戏-有趣又好玩的9个Python编程小游戏、简直太棒了

    打开搜狗搜索APP,查看更多精彩资讯 学习编程对大多数人来说是枯燥而无聊,大家有时候往往会觉得精神崩溃,提不起学习的兴趣,因此从入门到放弃,面临这种困境该怎么办呢? 这时候就有一些大牛设计出用游戏来学 ...

最新文章

  1. 等价类划分应用的扩展
  2. Apache Kafka-生产者_批量发送消息的核心参数及功能实现
  3. Machine Learning week 6 quiz: Advice for Applying Machine Learning
  4. 网易智慧企业春招开幕:同心战疫,共盼花开
  5. 网上选课系统java大作业_Java面向对象设计大作业——公选课选课系统
  6. python知识点汇总百度文库_PYTHON知识点汇总.doc
  7. Cloud一分钟 | 阿里云推杭州城市大脑2.0:实时指挥200名交警;马云即将卸任阿里,蚂蚁云不断加快区块链产业布局...
  8. dataframe填充到指定的行数
  9. OSS内文件如何设置为无时间限制的下载链接
  10. Green Plum测试报告
  11. Ubuntu12.04 apt-get 安装mysql
  12. 你可能不知道的 AS 小技巧之「Extract Resource」
  13. STM(Software Transactional Memory Systems)是什么 怎么用
  14. Unix网络编程-同步
  15. css等比例分割父级容器(完美三等分)
  16. 关于文件你必须了解的一些基本概念
  17. 串口每隔一定时间向电脑发送数据
  18. 区块链技术在银行业的运用
  19. (Ynoi2015) 纵使日薄西山 题解
  20. 6.配置dovecot

热门文章

  1. SDNU 1104数据排序
  2. 【Linux】常见命令总结
  3. 4.28dp专练总结
  4. 必读!信息抽取(Information Extraction)【关系抽取】
  5. Python 解密 pdf 文件
  6. Redis底层数据结构(图文详解)
  7. 8、Horizon 事件数据库安装配置
  8. 洛谷P2698 [USACO12MAR]Flowerpot S
  9. 弗里曼(Freeman)链码
  10. Unity3d 所有版本下载