Skip to main content

Chức năng hạng nhất là gì?

Chức năng hạng nhất là một thuật ngữ có thể được áp dụng trong lập trình máy tính và khoa học máy tính cho ngôn ngữ lập trình máy tính nếu việc xử lý các chức năng của nó tuân thủ một bộ hướng dẫn, mặc dù phạm vi đầy đủ và độ sâu của các hướng dẫn này không được chính thức thỏa thuận.Để có ngôn ngữ lập trình máy tính chức năng hạng nhất, tính năng chính phải được hỗ trợ là khả năng truyền các chức năng làm đối số cho các chức năng khác.Một chức năng cũng phải có khả năng được gán cho một biến để nó có thể được lưu trữ.Các thuộc tính khác được sử dụng để xác định những gì cấu thành hàm hạng nhất bao gồm khả năng tạo chức năng động trong thời gian chạy và khả năng của ngôn ngữ để có chức năng như một giá trị trả về của hàm khác.Các ngôn ngữ hỗ trợ kiến trúc chức năng hạng nhất cho phép mức độ trừu tượng cao và trong một số trường hợp, trong một số trường hợp, cung cấp một cơ chế để tạo mã động thời gian chạy.Truyền một hàm trong một chương trình thông qua các biến không nhất thiết là duy nhất cho các ngôn ngữ thực hiện hỗ trợ chức năng hạng nhất.Khả năng chuyển các khối mã cho các chức năng hoặc trả lại mã không động từ một hàm, có thể dễ dàng thực hiện trong nhiều ngôn ngữ lập trình thông qua các cơ chế khác nhau.Tuy nhiên, một trong những phần nghiêm ngặt của định nghĩa ngôn ngữ hàm hạng nhất là việc xử lý các hàm như các biến phải được thực hiện một cách tự nhiên, mà không cần sử dụng siêu dữ liệu như định nghĩa có điều kiện và không gọi trình biên dịchmã số.Hàm thuật ngữ cũng được sử dụng để chỉ các khối mã độc lập được gọi là của riêng chúng, có nghĩa là chúng không bao gồm các khối mã được gọi là các phương thức trong các ngôn ngữ lập trình hướng đối tượng hoặc các khối đôi khi được gọi là các quy trình trong các ngôn ngữ khác.được thiết kế để cho phép mã chức năng hạng nhất, một số mẫu thiết kế có thể được triển khai trực tiếp hơn so với các ngôn ngữ khác.Một hàm có thể nhận được một chức năng như một biến, sau đó xây dựng một hàm mới và trả lại chức năng mới cho mã gọi, do đó, điều này tạo ra một cơ chế để tạo mã chương trình thời gian chạy.Điều này cũng có thể làm cho việc sử dụng các hàm được đầu vào người dùng thời gian thực có thể trong ngôn ngữ mà không cần sử dụng các quy trình như phản ánh hoặc đánh giá.được sử dụng lại và thực hiện các thuật toán toán học đệ quy có khả năng tự sửa đổi phương trình của chúng khi chúng tiến triển.Một cách sử dụng tương tự, tiên tiến hơn cho các cơ chế hạng nhất là việc thực hiện đa hình trong các ngôn ngữ mà nó không được thực hiện cụ thể.Điều này có thể cho phép các chức năng được gọi với cùng một chữ ký chức năng nhưng thực thi mã dựa trên bối cảnh mà nó được gọi, đôi khi bằng cách chuyển một hàm chính cho hàm đa hình.