Function ในแบบ คณิตศาสตร์
นิยามของ Function
Function คือความสัมพันธ์ระหว่างเซตของ Input และเซตของ Output โดยที่แต่ละค่าของ Input จะสัมพันธ์ได้กับค่าของ Output แค่หนึ่งค่าเท่านั้น
เราสามารถอธิบาย Function ได้ง่ายๆโดยในการโยงเส้นจับคู่สิ่งของที่สัมพันธ์กันเช่น
Identity Function
Identity Function คือ Function ที่โยงความสัมพันธ์จากเซตของ Input ไปหา Output โดยที่ Input และ Output เป็นสิ่งเดียวกันเช่น
Composition Function
Composition Function คือการที่เราเอา 2 Functions มาประกอบกันโดยที่เซตของ Output ของ Function หนึ่งเป็นเซตของ Input ของอีก Function หนึ่ง ดังนี้
Composition Function ถ้าเรามองจากเซตของ Input ซ้ายสุดไปหาเซตของ Output ขวาสุดแล้วโยงความสัมพันธ์โดยที่ข้ามเซตของ Output ตรงกลางไปจะเห็นว่า Composition จะทำให้เกิด Function ใหม่ที่มีเซตของ Input ของ Function แรก ไปเป็นเซตของ Output ของ Function ที่สอง ดังนี้
Multiple Input Function
Function สามารถรับค่าได้หลายค่า จริงๆแล้วเรามอง Function แบบนี้โดยใช้นิยามแบบเดิมข้างบนได้เช่นเดิมคือมองเซตของ Input เป็นกลุ่มของเซตอื่นๆที่เรียงกันเป็นลำดับมีความสัมพันธ์กับเซตของ Output เช่น
Currying
จากการที่ Function รับค่าได้หลายค่า เราสามารถเรียบเรียงความสัมพันธ์ใหม่ โดยมองเซตของ Input ค่าแรกทำให้เกิดเซตของ Function ของค่าที่เหลือไปหา Output จากนิยามนี้ทำให้เรารู้ว่า ในทางคณิตศาสตร์ Function เป็นกลุ่มของวัตถุที่เราเอามาจัดเป็นเซตได้เช่นกัน ดังนี้
สรุป
จากนิยามของ Function และรูปแบบต่างๆที่ผมยกตัวอย่างมา สามารถอธิบายได้โดยใช้แผนภาพแล้วโยงเส้นจาก Input ไปหา Output จัดสำคัญคือ นิยามของ Function ในทางคณิตศาสตร์นั้น “ค่าของ Input 1 ค่าโยงหาค่าของ Ouput ได้ 1 ค่าเท่านั้น ส่วน Input ที่ต่างกันจะโยงหาหา Output เดียวกันได้ไม่เป็นไร
เราสามารถเอา Function มา Composition กันเพื่อให้เกิด Function ใหม่ได้ เราสามารถรับค่า Input หลายค่าได้ และด้วยนิยามของ Currying เราสามารถโยง Input ทีละ 1 ไปหา Function ของ Input ที่เหลือได้
ส่วน Computer Programming Language ที่เป็น Functional Language ก็ใช้นิยามของ Function ที่ว่าไว้ข้างบน มาเป็นวิธีการหลักในการสร้างโปรแกรมขึ้นมานั้นเอง