Khi tôi nhập :t
lệnh trong GHCi Tôi thấy kiểu đa hình:Làm thế nào để in loại chức năng đa hình (hoặc giá trị) trong ghci với các quy tắc mặc định kiểu được áp dụng?
ghci> :t 42
42 :: Num t => t
ghci> :t div
div :: Integral a => a -> a -> a
Nhưng sau khi tôi thực sự đánh giá chức năng như vậy tôi thấy kết quả của kiểu mặc định quy tắc. Có một số lệnh hoặc khả năng quan sát trong ghci làm thế nào loại sẽ được thay đổi sau khi loại quy tắc mặc định được áp dụng theo báo cáo Haskell và/hoặc thực hiện ghc?
Bạn thấy kết quả của các quy tắc mặc định loại như thế nào? ': t 42 \' div \ '2' hiển thị' Integral a => a', và do đó, kết quả của việc kết buộc, v.v. –
@ n.m. Tôi đã nói về kết quả thực tế. Giống như '2^100 \' div \ '2' in' 633825300114114700748351602688' vì loại mặc định cho trường hợp này là 'Số nguyên'. Ngay cả khi 'ghci' nói rằng loại hằng số này là đa hình, trong thực tế nó là cụ thể và tôi muốn xem loại đơn hình nào được sử dụng. – Shersh
@Shersh Đó chỉ là GHCi. REPL chọn một loại ('Integer', trong trường hợp này) bởi vì nó phải hiển thị một cái gì đó. Trong "thực" mã nó sẽ được đa hình cho đến khi bối cảnh chọn một loại. –