簡體   English   中英

在Perl中實現函數式編程

[英]Implementing functional programming in Perl

我正在嘗試學習像Haskell這樣的純函數式編程語言,因為我來自Perl背景,並且讀到Perl也可以實現函數式編程技術。 很少有人提出這樣的問題:

  • 是否值得在Perl 5中做到這一點?
  • Perl 6會有所作為嗎?
  • 任何人都可以建議在Perl中實現函數式編程技術的一些代碼/示例嗎?

  • 閱讀高階Perl 您可以購買免費下載 它甚至為經驗豐富的Perl程序員提供了見解。

    perl6仍然是一項正在進行中的工作,所以即使perl6在語言級別上對函數式編程有很多改進的支持(例如,參見perl6中的perlgeek.de ),你可能現在想要從perl5開始,這樣你就可以了開始研究那里的東西。 我建議查看cpan以獲得更高級別的庫支持... Array :: Utils和其他(有很多!)

    函數式編程只是編程,你可以用任何語言編寫。 如果您喜歡Haskell API的布局方式,您可能會喜歡我的Data :: Monad模塊,該模塊為包括Monad在內的各種Haskell類型類提供Moose角色。 (與Haskell不同,我的Monad中沒有“失敗”,所有Monads都是Functors。)

    下面是在處理成功或失敗的數據結構(如Control.Monad.Error)的上下文中運行各種類型類的示例:

    http://github.com/jrockway/data-monad/blob/master/t/error.t

    請注意,它能夠將可能因異常而失敗的常規Perl計算轉換為可以bind到其他過程的純過程。 這使得“常規Perl”在一個旨在具有更多功能控制流程的程序中工作。

    可能有點晚了,但是這本小書是在Perl中實現函數式編程技術的一個很好的例子: http//billhails.net/Book/

    作者從頭開始在perl 5中構建一個計划解釋器(並且BTW的推薦是純金)。

    暫無
    暫無

    聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

     
    粵ICP備18138465號  © 2020-2024 STACKOOM.COM