In Object Oriented Programming, OOP for short, you make programs by using objects and calling their methods:

`form.submit()`

It is a great fit for GUI programming for example, and generally a approach closer to the physical world where you can push buttons to call an elevator, light up or print something.
Objects have an internal state and expose a public interface. It is very convenient to make sure that some internal invariants are always respected and to hide some complexity from users.
But it is easy for state mutations to generate unintended side effects.

Functional programming separate more cleanly data from logic applied to it, which prevent unintended side effects and can often compose more easily:

`reports = data.filter(is_valid).map(to_report).reduce(to_csv)`

It's a great fit for pipelines where components and combinators can be mixed together but it's generally less easy to optimize and less familiar for most programmers.
ใน Object Oriented Programming หรือเรียกสั้นๆ ว่า OOP คุณสร้างโปรแกรมโดยใช้ object และเรียกเมธอดของพวกมัน: `form.submit()` มันเหมาะอย่างยิ่งสำหรับการเขียนโปรแกรม GUI เป็นต้น และโดยทั่วไปแล้วเป็นแนวทางที่ใกล้กับโลกทางกายภาพมากขึ้นซึ่งคุณสามารถ ปุ่มกดเพื่อเรียกลิฟต์ เปิดไฟ หรือพิมพ์อะไรบางอย่าง วัตถุมีสถานะภายในและเปิดเผยส่วนต่อประสานสาธารณะ สะดวกมากที่จะตรวจสอบให้แน่ใจว่าค่าคงที่ภายในบางตัวได้รับการเคารพเสมอ และซ่อนความซับซ้อนบางอย่างไม่ให้ผู้ใช้เห็น แต่มันเป็นเรื่องง่ายสำหรับการกลายพันธุ์ของรัฐที่จะสร้างผลข้างเคียงที่ไม่ได้ตั้งใจ การเขียนโปรแกรมเชิงฟังก์ชันแยกข้อมูลที่สะอาดมากขึ้นจากตรรกะที่ใช้ ซึ่งป้องกันผลข้างเคียงที่ไม่ได้ตั้งใจ และมักจะสามารถเขียนได้ง่ายขึ้น: `reports = data.filter(is_valid).map(to_report).reduce(to_csv)` เหมาะอย่างยิ่งสำหรับไปป์ไลน์ โดยที่ส่วนประกอบและตัวรวมสามารถผสมเข้าด้วยกันได้ แต่โดยทั่วไปจะปรับให้เหมาะสมได้ง่ายกว่าและไม่คุ้นเคยสำหรับโปรแกรมเมอร์ส่วนใหญ่
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence