อะไรคือ 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 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)