使用Haskell和Hubris加強Ruby

2021-09-17 02:53:59 字數 1004 閱讀 2174

在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 -\u0026gt; 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

譯 Haskell 中隨機數的使用

隨機數 我指的是偽隨機數 是通過顯式或隱式的狀態來生成的。這意味著在 haskell 中,隨機數的使用 通過system.random庫 是伴隨著狀態的傳遞的。大部分需要獲得幫助的人都有命令式程式設計的背景,因此,我會先用命令式的方式,然後再用函式式的方式來教大家在 haskell 中使用隨機數。我...

Haskell使用率和使用者滿意度雙雙增長

fp complete首席執行官aaron contorer寫道,2018年haskell使用者調查顯示使用者對haskell的安全性 質量 可靠性 可維護性和高階功能均表示出了非常高的滿意度。infoq與其談論了haskell當前的情況和未來的前景。u0026 xd u0026 xd 三年前曾發布...

Haskell使用率和使用者滿意度雙雙增長

fp complete首席執行官aaron contorer寫道,2018年haskell使用者調查顯示使用者對haskell的安全性 質量 可靠性 可維護性和高階功能均表示出了非常高的滿意度。infoq與其談論了haskell當前的情況和未來的前景。三年前曾發布2015年haskell使用者調查,...