在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使用者調查,...