2012-12-04 28 views
13

thể trùng lặp:
What is the history of the variable names x and xs?Tên "xs" cho khớp mẫu đến từ đâu?

đâu tên kinh điển "xs" trong mô hình kết hợp đến từ đâu?

ví dụ: in

reverse' []  = [] 
reverse' [x] = [x] 
reverse' (x:xs) = reverse' xs ++ [x] 

Nó có phải là số nhiều của "x" không?

+1

Có lẽ 'thông thường' thay vì 'kinh điển'. Đó là một số nhiều, vâng. –

+3

Vâng, đó là số nhiều. Được giới thiệu bởi Phil Wadler, tôi nghĩ vậy. – augustss

+0

Bạn cũng sẽ thường thấy (h: t), hoặc thỉnh thoảng dạng dài hơn (đầu: đuôi), mặc dù cách đó phổ biến hơn, tôi nghĩ, trong Erlang. – isturdy

Trả lời

20

Đó là cách tôi đã luôn luôn đọc nó, bạn có số ít và số nhiều, Vì vậy x:xs hoặc y:ys, vv

Nó không thực sự có bất kỳ ý nghĩa bởi chính nó, nó chỉ là một quy ước.

IIRC cũng được đề cập trong Learn You a Haskell.


Edited

Sai lầm của tôi - nó thực sự trong Real World Haskell trong chương nói về chủng loại và chức năng.

enter image description here

+0

Bạn có biết chính xác trong "Tìm hiểu bạn một Haskell" này được đề cập đến không? –

+1

@FrankSchmitt, tôi không chắc chắn nếu nó được đề cập bất cứ nơi nào một cách rõ ràng, nhưng nó chỉ được coi là quy ước như Abizern nói. (x: xs) chỉ có nghĩa là một x duy nhất được gắn vào đầu của một danh sách xs (về cơ bản, loại truyền đạt thông điệp rằng nó là một danh sách chứa các phần tử x tương tự). Không chắc chắn nếu đây là một lời giải thích đủ tốt. – Ali

+0

@Abizern Cảm ơn rất nhiều. –

Các vấn đề liên quan