2015-02-17 14 views
11

F # có cung cấp các cách thành ngữ để ghép nốiLàm thế nào để nối các danh sách (và các bộ sưu tập khác) trong F #?

  • trình tự và liệt kê cùng nhau?
  • liệt kê và liệt kê cùng nhau vào một danh sách? (không phá hủy)
  • liệt kê và liệt kê lại với nhau thành một danh sách nếu nó có tính hủy diệt?
  • mảng có thể thay đổi cùng nhau, triệt tiêu, thành một mảng có thể thay đổi khác?

Và bạn có thể ghép nối các bộ dữ liệu không?

+0

Đó là rất nhiều câu hỏi. Và không phải của họ thực sự là đủ cụ thể để cung cấp câu trả lời có ý nghĩa ... Có vấn đề cụ thể mà bạn đang cố gắng giải quyết? – MarcinJuraszek

+0

Hm. Tôi chỉ muốn gặt hái những lợi ích của kiến ​​thức chuyên môn - Tôi nghĩ rằng một người có kinh nghiệm với ngôn ngữ sẽ có thể giải thích những khái niệm này. Nhưng tôi đồng ý nó không thực sự phù hợp với định dạng Q & A thích hợp. Hãy để tôi phạm vi nó xuống. –

+3

Phạm vi nó xuống ... –

Trả lời

13

trình tự và danh sách cùng

Không có chức năng đặc biệt cho việc này. Nếu chuỗi đầu tiên là thứ hai, thì bạn phải chọn giữa chuyển đổi danh sách đầu tiên thành danh sách (và sau đó sao chép nó khi thêm bằng cách sử dụng List.append) hoặc sử dụng Seq.append, sau đó là List.ofSeq sẽ sao chép cả hai danh sách.

Vì vậy, bạn nên viết hàm của riêng mình.

liệt kê và liệt kê cùng nhau vào danh sách? (không phá hủy)

List.append thực hiện việc này.

danh sách và danh sách với nhau thành một danh sách nếu nó là phá hoại

Lists là không thay đổi, vì vậy không có append phá hoại.

mảng có thể thay đổi cùng nhau, triệt tiêu, thành một mảng có thể thay đổi khác?

Trong .NET, bạn không thể thay đổi kích thước mảng, do đó không có cách nào để thực hiện điều đó. Array.append tạo một mảng mới (và sẽ nhanh hơn các tùy chọn khác, vì nó biết kích thước của kết quả trước).

Và bạn có thể ghép nối các bộ dữ liệu không?

Không. Hệ thống loại không cho phép bạn thể hiện loại hàm sẽ nối thêm bộ (chúng phải có kích thước được biết đến tĩnh).

+16

Ngoài ra còn có toán tử '@', mà tôi tin là giống hệt với 'List.append'. – YotaXP

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