Tôi là người mới sử dụng Haskell, mặc dù đã có trải nghiệm Lisp/Scheme trước đó. Ngay bây giờ tôi đang xem xét các ví dụ từ SICP và cố gắng triển khai chúng trong Haskell để có được nhiều kinh nghiệm thực hành hơn. Trong bài giảng 3b tác giả trình bày một chức năng để tính toán các dẫn xuất tượng trưng. Nó chứa, trong số những người khác, những dòng sau:Kiểm tra nội bộ của các chức năng trong Haskell
(define (deriv exp var)
(cond ((constant? exp var) 0)
((same-var? exp var) 1)
; ...
Tiếp tục trong bài giảng, một số chức năng hơn được định nghĩa:
(define (constant? exp var)
(and (atom? exp)
(not (eq? exp var))))
Có cách nào để làm điều tương tự trong Haskell, tức là kiểm tra số nguyên tử và tương đương tượng trưng cho một số chức năng khác? Hoặc tổng quát hơn, các phương tiện "tháo rời" chức năng trong Haskell là gì?
Điều gì về việc đánh giá dữ liệu Exp của bạn (theo như tôi hiểu, đây là danh sách cuối cùng)? –
Tôi thực sự không cần một hàm eval; Tôi đã sử dụng sự khác biệt tượng trưng để phát ra mã C. Nếu bạn muốn viết một và gặp rắc rối, hãy đăng câu hỏi :-) –