Skip to content

เขียนโปรแกรมแบบ 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

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

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

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]

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

from fn import _

print (_ + 2) # "(x1) => (x1 + 2)"
print (_ + _ * _) # "(x1, x2, x3) => (x1 + (x2 * x3))"

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

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *