29 เมษายน 2558

Published 4/29/2558 by with 0 comment

เขียนโปรแกรมแบบ Functional ใน Python ด้วย Fn.py

สวัสดีผู้อ่านทุกท่านครับ บทความนี้จะพาผู้อ่านไปลองเขียนโปรแกรมแบบ Functional ใน Python ด้วย Fn.py กันครับ

อะไรคือ functional programming language
อ่านได้จากโพสต์ ยังไงถึงจะเป็น functional programming language ของคุณ harpsealpup ครับ

อย่างที่รู้กันว่าตัวภาษา Python ไม่รองรับการเขียนโปรแกรมแบบ pure-functional programming ทำให้ไม่สามารถใช้ความสามารถของการเขียนโปรแกรมแบบ Functional เหมือนภาษาอื่น ๆ เช่น Haskell , Java เป็นต้น เพราะเหตุนี้จึงมีคนทำโมดูลขึ้นมา โดยทำให้ภาษา Python รองรับการเขียนโปรแกรมแบบ pure-functional programming ครับ
โมดูลที่ผมพูดถึง คือ โมดูล Fn.py

  • รองรับทั้ง Python 2 , Python 3

  • รองรับสไตล์การเขียนแบบ "Functional" ดังนี้

    • Formal provability

    • Modularity

    • Composability

    • Ease of debugging and testing



  • ใช้ Apache License, Version 2.0


สามารถติดตั้งได้โดยใช้คำสั่ง pip:
$ pip install fn

ตัวอย่างสไตล์ Scala ของแลมบ์ดา (lambda)
ภาษา Python

[python]map(lambda x: x*2, [1,2,3])[/python]

ภาษา Haskell
map (2*) [1,2,3]
ใช้โมดูล Fn.py ด้วย _ object พิเศษ เพื่อลดความซับซ้อนของไวยากรณ์แลมบ์ดา

[python]from fn import _

assert (_ + _)(10, 5) = 15
assert list(map(_ * 2, range(5))) == [0,2,4,6,8]
assert list(filter(_ < 10, [9,10,11])) == [9]
[/python]

แสดงการทำงาน function

[python]
from fn import _

print (_ + 2) # "(x1) => (x1 + 2)"
print (_ + _ * _) # "(x1, x2, x3) => (x1 + (x2 * x3))"
[/python]

อ่านเอกสารเพิ่มเติมได้ที่ https://github.com/kachayev/fn.py
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)