使用Haskell和Hubris加强Ruby
在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相关推荐
- 卸载Notepad++!事实已证明,它更牛逼……
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:lucida lucida.me/blog/subl ...
- 收藏:因为有这篇Sublime Text使用教程,我立即卸载掉了Notepad+...
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:lucida 链接:http://lucida.me/blo ...
- Sublime Text使用教程【转】
本文转载自:http://lucida.me/blog/sublime-text-complete-guide/ 摘要(Abstract) 本文系统全面的介绍了 Sublime Text,旨在成为最优 ...
- 如何设计一门语言(一)——什么是坑(a)
这个系列的起因是这样的,王垠写了一篇喷go的博客http://www.yinwang.org/blog-cn/2013/04/24/go-language/,里面说go已经烂到无可救药了,已经懒得说了 ...
- Sublime Text 全程指引 by Lucida
作者:Lucida 微博:@peng_gong 豆瓣:@figure9 博客园:@figure9 原文链接:http://zh.lucida.me/blog/sublime-text-complete ...
- sublime text全程指南【转载】
前言(Prologue) Sublime Text是一款跨平台代码编辑器(Code Editor),从最初的Sublime Text 1.0,到现在的Sublime Text 3.0,Sublime ...
- 神级代码编辑器 Sublime Text 全程指南
转载来自[http://mdsa.51cto.com/art/201507/484183_all.htm#topx] 摘要(Abstract) 本文系统全面的介绍了Sublime Text,旨在成为最 ...
- 官宣!2020年,这5类程序员要过苦日子!网友:明年咋活?!
2020年就要来了,有人说:经历了2019年的"市场变革"后,未来这一年将会至关重要,是决定各自命运的定型年. 那么对于程序员来说,明年的风向标是如何?哪些编程语言会持续大热,哪些 ...
- python能做什么游戏-有趣又好玩的9个Python编程小游戏、简直太棒了
打开搜狗搜索APP,查看更多精彩资讯 学习编程对大多数人来说是枯燥而无聊,大家有时候往往会觉得精神崩溃,提不起学习的兴趣,因此从入门到放弃,面临这种困境该怎么办呢? 这时候就有一些大牛设计出用游戏来学 ...
最新文章
- 等价类划分应用的扩展
- Apache Kafka-生产者_批量发送消息的核心参数及功能实现
- Machine Learning week 6 quiz: Advice for Applying Machine Learning
- 网易智慧企业春招开幕:同心战疫,共盼花开
- 网上选课系统java大作业_Java面向对象设计大作业——公选课选课系统
- python知识点汇总百度文库_PYTHON知识点汇总.doc
- Cloud一分钟 | 阿里云推杭州城市大脑2.0:实时指挥200名交警;马云即将卸任阿里,蚂蚁云不断加快区块链产业布局...
- dataframe填充到指定的行数
- OSS内文件如何设置为无时间限制的下载链接
- Green Plum测试报告
- Ubuntu12.04 apt-get 安装mysql
- 你可能不知道的 AS 小技巧之「Extract Resource」
- STM(Software Transactional Memory Systems)是什么 怎么用
- Unix网络编程-同步
- css等比例分割父级容器(完美三等分)
- 关于文件你必须了解的一些基本概念
- 串口每隔一定时间向电脑发送数据
- 区块链技术在银行业的运用
- (Ynoi2015) 纵使日薄西山 题解
- 6.配置dovecot