bây giờ tôi hiểu kiểu chữ ký của s (s k)
:gì combinator này làm: s (sk)
s (s k) :: ((t1 -> t2) -> t1) -> (t1 -> t2) -> t1
Và tôi có thể tạo ra những ví dụ mà làm việc mà không có lỗi trong công cụ Haskell WinGHCi:
Ví dụ:
s (s k) (\g -> 2) (\x -> 3)
trả về 2
.
Ví dụ:
s (s k) (\g -> g 3) successor
lợi nhuận 4
.
nơi successor
được định nghĩa như vậy:
successor = (\x -> x + 1)
Tuy nhiên, tôi vẫn không có một cảm giác trực quan cho những gì s (s k)
làm.
Bộ tổ hợp s (s k)
có hai chức năng f
và g
. s (s k)
làm gì với f
và g
? Bạn có cho tôi bức tranh lớn về những gì s (s k)
không?
Việc hủy bỏ 'S (S K)' bị thiếu. Đây có phải là 's' và' k' giống nhau trong http://stackoverflow.com/questions/9592191/the-type-signature-of-a-combinator-does-not-match-the-type-signature-of- equi của nó? –
Btw, cái gì là trực quan? Bạn có tìm thấy http://en.wikipedia.org/wiki/Ouroboros trực quan không? Bạn có thể tưởng tượng một con rắn ăn và biến mất không? Hay một robot tự xây dựng chính nó? Bạn cần cảm giác tốt hơn về một cái gì đó hành động trên chính nó. –