Có thể truy vấn ghci cho loại được suy ra cho hàm bên trong một hàm khác không?GHCi có thể cho tôi biết loại chức năng Haskell cục bộ không?
Trả lời
Bạn có thể thử thực hiện bằng cách đặt điểm ngắt trên đó, vì vậy hàm nằm trong phạm vi từ trình gỡ lỗi.
Ngoài ra tôi nghĩ rằng EclipseFP có thể cho bạn biết các loại điều khi bạn di chuột qua chúng, ít nhất một số thời gian.
Đây là một hack nhanh chóng và xấu xí, nhưng những gì tôi thường làm là chỉ cần sử dụng các chức năng trong một cách sai lầm và đọc các thông báo lỗi:
inc x = x + 1
where
f (y, z) = y + z
g = f :: Char
GHCi đầu ra:
Couldn't match expected type `Char'
against inferred type `(t, t) -> t'
In the expression: f :: Char
Mặc dù điều này rời khỏi bối cảnh Num t =>
, điều này thường cung cấp cho tôi đủ thông tin để tiếp tục.
+1 Tuyệt vời! Điều này thực sự giúp tôi hiểu một định nghĩa hàm lông! Lưu ý: điều này hoạt động trên *** bất kỳ biểu thức *** nào trong định nghĩa hàm. Ví dụ: nếu bạn muốn xem loại 'blah' trong' f x = foo + blah', hãy làm - 'f x = foo + (cho phép exp = blah trong exp :: Char)'. –
Với GHC 7.8+, chỉ cần thêm `asTypeOf` _
vào biểu thức.
Xem Find out the type of an expression/function with typed holes để biết giải thích chi tiết.
- 1. Loại chức năng in cho bảng điều khiển không có ghci
- 2. Có chức năng haskell cho các ngày không?
- 3. Haskell/Miranda: Tìm loại chức năng
- 4. Hiển thị các loại chức năng trong Haskell
- 5. Chức năng Haskell không chấm dứt
- 6. C++ Mẫu Chức năng biến thể của loại đã biết
- 7. Haskell: Làm thế nào tôi có thể định nghĩa một loại lớp cho các bộ?
- 8. Chức năng đa biến trong Haskell
- 9. Chức năng bảo tồn cục bộ chức năng băm
- 10. Tại sao GHCi không thể giải quyết loại [[]]?
- 11. Strange Haskell/GHCi issue
- 12. Chức năng để đánh giá haskell trong ghci trong khi chỉnh sửa tệp nguồn bằng Emacs
- 13. Haskell: hiểu "Không dụ cho" thông báo lỗi trong ghci
- 14. Haskell Monad Chức năng
- 15. Ứng dụng Chức năng Haskell
- 16. Chức năng trong Haskell
- 17. Kiểm tra Loại Chức năng trong Scala
- 18. Chức năng $ thực sự làm gì trong haskell?
- 19. Trong GHCi, tại sao loại mũi tên chức năng `: loại (->)` bao gồm dấu hỏi `(->) :: ?? ->? -> * `?
- 20. Haskell csv-conduit trong GHCi
- 21. Tôi có thể chuyển mẫu vào một chức năng không?
- 22. Tìm loại được suy ra cho hàm cục bộ
- 23. Dòng in Haskell có chức năng
- 24. trường Haskell chồng chéo và chức năng loại
- 25. Haskell Newbie: Không dụ cho Show vào chức năng bản đồ
- 26. Định nghĩa chức năng Haskell và mảng bộ nhớ đệm
- 27. Tôi có thể thêm tuyên bố thể hiện trong GHCi
- 28. chức năng không thể phù hợp với loại
- 29. Chức năng này có thể được triển khai với hệ thống kiểu của Haskell không?
- 30. Tôi có thể quét nhanh mạng cục bộ của mình để biết các cổng mở cụ thể không?
Whoa, chỉ nhận ra rằng điểm ngắt nơi một tùy chọn, sau khi đăng một giải pháp nửa nướng phức tạp ... Sau đó nhận thấy câu trả lời này. GHCi in ra các loại biểu thức trong phạm vi hiện tại khi nó dừng lại ở điểm ngắt mà không có bất kỳ prodding đặc biệt nào, do đó, nó chỉ là vấn đề vị trí. +1! –
Mẹo hay nhưng không hoạt động nếu mã không biên dịch. Câu trả lời của Tom có thể có ích. –