2013-04-05 21 views
9

Bất cứ ai có thể giải thích cho tôi sự khác biệt giữa thủ tục "Ada" và "chức năng"?Chức năng Ada vs Quy trình

+2

Đây là câu hỏi cơ bản có thể được trả lời bởi bất kỳ tham chiếu Ada nào. –

+0

@KeithThompson: Cảm ơn bạn đã trả lời. Thật không may, tôi có 24 giờ để làm bất cứ điều gì :). –

+0

Vâng, hàm trả về một giá trị, và thủ tục thì không. Ví dụ ngôn ngữ Pascal có cùng. Các ngôn ngữ giống như C chỉ có các hàm, có thể giả vờ là các thủ tục bằng cách trả về một giá trị void. BTW, 24h là đủ để tìm hiểu loại công cụ đó :) – Archie

Trả lời

13

Ngôn ngữ Ada không khác nhiều so với các ngôn ngữ C bắt buộc khác. Cú pháp mặc dù có thể trông rất lạ và choáng ngợp với các câu lệnh khác nhau, nhưng điều này chủ yếu là do hệ thống gõ tĩnh rất phong phú và các tính năng được cung cấp trực tiếp bởi ngôn ngữ (ví dụ như các tác vụ).

Không giống như hầu hết các ngôn ngữ giống như C, Ada phân biệt các thủ tục thủ tục và chức năng. Trong hàm ý nghĩa này là rất nhiều chức năng toán học có các đối số (hoặc không có) và trả về một giá trị, và do đó được sử dụng trong các biểu thức. Các thủ tục không trả về bất kỳ giá trị nào và không thể được sử dụng trong các biểu thức. Ngôn ngữ Pascal giữ cùng sự phân biệt giữa các hàm và thủ tục. Các ngôn ngữ giống như C đã chọn chỉ có các hàm có thể được sử dụng bên ngoài biểu thức (giá trị trả lại được bỏ qua trong trường hợp này) hoặc trả về một giá trị void để hoạt động như một thủ tục.

+0

Quy trình Ada có thể sửa đổi biến (trạng thái thay đổi) không? – MNRC