使用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加載動態庫調用導出的函數了。
Mark將會在九月份舉辦的rorosyd做一個關于Hubris的講座。盡管只是初步意向,但是這個講座肯定會吸引一些Haskell的用戶。
\u0026#xD;查看英文原文:Empower Your Ruby With Haskell And Hubris
總結
以上是生活随笔為你收集整理的使用Haskell和Hubris加强Ruby的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TortoiseSVN安装最新版,设置中
- 下一篇: php7.4配置文件,Centos8中p