Có thể nếu đưa ra một chuỗi tôi có thể nhận được mỗi ký tự sáng tác chuỗi đó không?Haskell nhận mảng ký tự từ chuỗi?
Trả lời
Trong Haskell, chuỗi chỉ là (danh sách) các ký tự; bạn có thể tìm thấy dòng
type String = [Char]
một nơi nào đó trong nguồn của mọi triển khai Haskell. Điều đó làm cho các nhiệm vụ như tìm sự xuất hiện đầu tiên của một ký tự nhất định (elemIndex 'a' mystring
) hoặc tính tần số của mỗi ký tự (map (head &&& length) . group . sort
) không đáng kể.
Vì lý do này, bạn cũng có thể sử dụng cú pháp thông thường cho các danh sách có chuỗi. Trên thực tế, "foo"
chỉ là đường cho ['f','o','o']
, mà lần lượt chỉ là đường cho 'f' : 'o' : 'o' : []
. Bạn có thể ghép mẫu, vẽ bản đồ và gấp chúng theo ý muốn. Ví dụ: nếu bạn muốn lấy phần tử tại vị trí n
của mystring
, bạn có thể sử dụng mystring !! n
, miễn là 0 <= n < length mystring
.
'tổng hợp bản đồ. nhóm . sắp xếp' bị gõ sai cho chuỗi. Có lẽ bạn có nghĩa là một cái gì đó giống như 'map (head &&& length). nhóm . sắp xếp'? – hammar
@hammar: Cảm ơn – fuz
Vì vậy, nói rằng tôi đã thông qua một chuỗi trong như một tham số cho một chức năng, làm thế nào tôi thực sự sẽ truy cập mỗi char? sử dụng bản đồ? – user997112
Loại string
chỉ là alias cho [Char]
vì vậy bạn không cần phải làm gì cả.
Prelude> tail "Hello"
"ello"
Prelude> ['H', 'e', 'l', 'l', 'o']
"Hello"
Prelude> "Hello" !! 4
'o'
Vâng, câu hỏi không nói anh ấy muốn một mảng:
import Data.Array
stringToArray :: String -> Array
stringToArray s = listArray (0, length s - 1) s
Đây là những gì tôi đã tìm kiếm. Trong thực tế, đây là câu trả lời * đúng * cho câu hỏi, ngay cả khi đó không phải là ý định của OP. – setholopolus
- 1. Haskell: lỗi từ vựng trong chuỗi ký tự/ký tự ở ký tự 'i'
- 2. Chuyển mảng chuỗi ký tự đến hàm
- 3. Scala - Nhận hai ký tự cuối cùng từ chuỗi
- 4. Tách chuỗi thành mảng ký tự?
- 5. Tạo chuỗi từ chuỗi ký tự
- 6. Chuyển đổi danh sách ký tự (hoặc mảng) thành chuỗi
- 7. Cắt các ký tự từ một chuỗi
- 8. Trích xuất ký tự từ chuỗi
- 9. Xóa các ký tự từ chuỗi
- 10. Chuỗi ký tự và ký tự trong Java
- 11. mảng chuỗi với ký tự rác ở cuối
- 12. Nhận 5 ký tự cuối cùng trong một chuỗi
- 13. Literal chuỗi khởi tạo cho một mảng ký tự
- 14. Gán các chuỗi ký tự cho các mảng
- 15. gán một mảng char vào chuỗi ký tự - C++
- 16. Gán một chuỗi ký tự cho một mảng char
- 17. Khởi tạo cấu trúc mảng và chuỗi ký tự
- 18. xóa [] Mảng ký tự
- 19. GUID, chuỗi ký tự 30 ký tự
- 20. Ký tự Unicode chuỗi
- 21. nhận chuỗi giữa 2 ký tự trong python
- 22. Haskell có nối chuỗi ký tự chuỗi vào thời gian biên dịch không?
- 23. Remove chuỗi giữa 2 ký tự từ chuỗi văn bản
- 24. regex - nhận số sau chuỗi ký tự nhất định
- 25. Tách chuỗi bằng ký tự
- 26. Chuyển đổi mảng ký tự thành mảng danh sách các ký tự
- 27. Lấy hai ký tự từ chuỗi trong python
- 28. Xuất tổng số ký tự chuỗi
- 29. Nhận ba ký tự cuối từ bất kỳ chuỗi nào - Java
- 30. Nhận Thứ hai đến vị trí ký tự cuối cùng từ chuỗi
Yes. Tôi nghĩ rằng các chuỗi là danh sách char trong Haskell. –
Bạn muốn làm gì với các ký tự? –
Có, hàm này được gọi là 'id'. –