Như đã lưu ý nhiều lần ở nơi khác (ví dụ: 1, 2, ...) tập lệnh trong haskell có thể khá mạnh mẽ.
Cách nhanh chóng cũng có thể là ghc expression evaluation mode. đây là những gì tôi thực sự tìm thấy bản thân mình bằng cách sử dụng nhiều hơn và nhiều hơn nữa (Tôi thực sự thích tính năng này trong ruby).
Một ví dụ nhiệm vụ nhỏ:
"Tìm hiểu tất cả các thư mục có chứa diffs git giữa các HEAD và một phiên bản cụ"Chế độ đánh giá biểu thức trong haskell cho kịch bản
git diff --stat 9e2b68 | ghc -e \
"getContents >>= return.(Data.List.nub).map(fst.break('/'==).head.words).lines"
này trông một chút vụng về, có lẽ bởi vì tôi không thực sự biết các chi tiết sử dụng ghc -e
.
Cho rằng tất cả các phần thú vị chỉ là nub.map(fst.break('/'==).head.words).lines
biểu hiện thực tế có vẻ hơi chói.
- Làm cách nào để biết ghc về các mô-đun tôi cần sử dụng để tôi không cần phải đủ điều kiện sử dụng tên đầy đủ?
- Tôi có thể làm cho Ghc nhận một số loại tệp cấu hình có chứa các mô-đun mà tôi thường xuyên sử dụng không?
Tôi thực sự đánh giá cao việc xem một số ví dụ từ các giai đoạn khác sẽ giúp tôi cải thiện cách tôi sử dụng haskell cho các loại tập lệnh nhỏ đó!
Sidenote: Commandline-foo wizards có lẽ sẽ cười vào điều này nhưng tôi cảm thấy thoải mái hơn nhiều khi sử dụng haskell sau đó bash scripting vì vậy đây là những gì tôi muốn sử dụng.
Đối với chuỗi → Các hàm chuỗi Tôi thấy 'tương tác' ít phức tạp hơn:' ghc -e 'tương tác $ Chuỗi func> "'. Điều này thường kết thúc bằng "ghc -e" tương tác $ unlines. Bản đồ ( Chuỗi func>). Dòng "'. –
Nefrubyr
Là một fan của cả git và Haskell, người không phải là một "thủ thuật commandline-foo", một bài đăng trên blog, nơi bạn liệt kê một loạt các tập lệnh Haskell liên quan đến git chắc chắn sẽ được tôi quan tâm! – MatrixFrog
@MatrixFrog Không bị giới hạn bởi git nhưng có thể vẫn còn thú vị với bạn: [Scripting with GHCs Evaluation Mode] (http://blog.coldflake.com/post/12412650749/scripting-with-ghcs-evaluation-mode) – oliver