Tilia là công cụ định dạng mới dành cho mã nguồn Haskell, nhằm giải quyết vấn đề không có formatter chuẩn trong hệ sinh thái này. Được phát triển bởi tác giả của Ormolu, Tilia sử dụng cùng bộ parser GHC nhưng triển khai thuật toán layout khác để tạo ra kết quả định dạng tối ưu hơn với 20-30% số dòng code giảm so với các công cụ hiện có. Hệ quả là mã nguồn được tổ chức tốt hơn, dễ đọc và bảo trì hơn mà không làm mất tính nhất quán. Các lập trình viên nên cân nhắc dùng Tilia nếu đang tìm kiếm formatter hiệu suất cao, đặc biệt khi làm việc với các dự án Haskell lớn cần giữ tính đồng bộ hóa mã nguồn.
AI có thể tóm tắt sai. Đọc bài gốc trước khi dựa vào thông tin quan trọng.
Vì sao nên đọc: Tilia mang đến trình định dạng mã nguồn Haskell mới với khả năng tùy chỉnh cao, giúp nâng cao chất lượng và tính nhất quán của dự án.
Trả lời 3 câu hỏi ngắn để nhận điểm thưởng cho bài này. Chỉ làm khi bạn muốn lấy điểm.
3 câu hỏi · dưới một phút · không bắt buộc
Nguồn: https://markkarpov.com/post/announcing-tilia.html. 8 Sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Đọc tin ở đây, luyện code, học theo lộ trình và luyện IELTS trên các sản phẩm anh em — tất cả kết nối với nhau trong hệ sinh thái 8 Sync.
Cổng chính của hệ sinh thái: giới thiệu sản phẩm, blog và bảng giá trọn bộ.
Khám pháHọc theo lộ trình rõ từng chặng: video, quiz chấm tự động, certificate và mentor đang làm nghề.
Xem lộ trình1.000 bài DSA, đề tiếng Việt, chấm tự động 7 ngôn ngữ — nhiều bài FREE, chạy ngay trên trình duyệt.
Luyện miễn phíChấm bốn kỹ năng IELTS bằng AI, phản hồi chi tiết theo rubric.
Dùng thử miễn phíAI IDE 22 MB cho dev Việt.
Tải miễn phíBộ nhớ tổ chức cho AI agent.
Khám pháAI trực Fanpage, tự sàng lọc lead.
Dùng thửTrong bối cảnh LLMs có thể giải quyết các bài tập Haskell tiêu chuẩn, bài viết thảo thách thức trong thiết kế khóa học functional programming. Nguyên nhân kỹ thuật là các LLM như GPT-4 đã đạt trình độ hiểu sufficiently deep về kiểu dữ liệu và hệ thống kiểu của Haskell. Hệ quả là sinh viên có thể sao chép giải mà không hiểu bản chất, đe dọa mục tiêu giáo dục. Điều đáng học là tác giả đang thiết kế lại khóa học để embrace LLMs như công cụ hỗ trợ, tập trung vào các bài tập đòi hỏi tư duy phản biện và hiểu biết sâu về monad và category theory thay vì kỹ năng lập trình cơ bản.
Bài viết này giải thích cách LLMs đang thay đổi việc giảng dạy ngôn ngữ Haskell và tại sao nên chấp nhận chúng trong quá trình học tập.
An argument against using effect systems (like polysemy, effectful, eff) in Haskell, based on rewriting a production codebase from scratch. The author walks through each claimed benefit of effect systems—argument passing, safety, higher-order effects, IO tracking—and concludes none hold up, with error handling (specifically early return) being the only real use case, which can be solved with a type-safe exception technique using a phantom-typed Early token and bracket-style exception handling. The rest of the post details patterns for implementing effects—logging, databases, configuration, mocking—directly in plain IO using the handle/data-type pattern, module structure tricks, and GHC's unused-argument warnings, culminating in a full example of wiring an API server without any effect system library.
Well-Type vừa phát hành phiên bản 1.0 của hs-bindgen, công cụ tự động tạo bindings Haskell từ C headers. Phiên bản mới này cung cấp FFI types để dịch foreign function portability hơn, xử lý tốt hơn các unnamed/anonymous C declarations thông qua indirect HasField instances, và cải thiện OverloadedRecordUpdate cho unions. Các cải tiến đáng chú ý khác trong macro-handling bao gồm parsing partially-unparseable macros, detection ambiguous macros và command-line macro definitions. Tương lai, dự án hướng tới tự động tạo high-level bindings qua thư viện binding-combinators, được tài trợ bởi Anduril.
Lập trình viên nên đọc bài này để tìm hiểu về công cụ hs-bindgen giúp tự động tạo liên kết Haskell từ header C, hỗ trợ FFI types portable và cải thiện xử lý macro.
This issue of Haskell Weekly rounds up community news and projects. Robert Krook shares a survey of distributed Haskell systems adapted from his PhD thesis. Abhinav Sarkar extends his BlogShake static site generator with per-tag Atom feeds. Jonathan Knowles investigates a Haddock hyperlink bug spanning GHC 9.8 to 9.14. GHC musl Docker manifests now use alpine:3.24.3 for security fixes, and nonempty-vector hits version 1.0. The Haskell Foundation announces AmeriHac 2027, a two-day hackathon hosted by Jane Street in Manhattan on February 6-7, and calls for volunteers for a new haskell.org working group.
GHC now has a policy for AI-assisted contributions. We examine the rules, the debate behind them, and what they mean for Haskell contributors.
Trong Haskell, kind system là hệ thống phân loại các kiểu dữ liệu tại cấp độ siêu kiểu. Kind của một kiểu như Int là *, còn kind của kiểu container như Maybe là * -> *. Kind system giúp trình biên dịch phát hiện lỗi khi định nghĩa generic type không phù hợp, như khi cố gắng sử dụng Maybe như một kiểu dữ liệu thông thường. Hiểu rõ kind system giúp lập trình viên viết code generic an toàn hơn và tránh những lỗi phức tạp khi làm việc với higher-kinded types như trong các thư viện như fmap hay foldable.
Bài viết này giúp lập trình viên hiểu sâu về hệ thống Kind trong Haskell để nâng cao kỹ năng lập trình hàm.
Bối cảnh bài viết giới thiệu Initial API definition và một property cơ bản trong QuickCheck. Nguyên nhân kỹ thuật là việc kiểm tra property giúp xác minh hành vi của API khi xử lý các hóa đơn chưa được phân loại (Uncategorised bill). Hệ quả là QuickCheck sẽ tự động tạo test cases để đảm bảo API hoạt động đúng với mọi đầu vào vào thuộc loại hóa đơn này. Điều đáng học là việc sử dụng property-based testing với QuickCheck có thể phát hiện các lỗi tiềm ẩn mà unit test truyền thống có thể bỏ sót, đặc biệt với các trường hợp biên.
Tìm hiểu cách kiểm tra thuộc tính QuickCheck giúp bạn thiết kế API mạnh mẽ hơn cho các hóa đơn không phân loại.
Haskell Language Server 2.15.0.0 ships with a new export plugin, multi-component loading, and major startup performance gains. The hls-export-plugin adds code actions for adding and removing symbols from import lists. Multi-component loading is now on by default, and a new whole project loading mode preloads all components upfront, useful with the Haskell debugger. Import resolution changes avoid repeated on-disk lookups, with one user reporting startup time dropping from minutes to 3 seconds. Fixes include a squashed 'Overlapping instances' bug, revived hls-splice-plugin, and corrected hackage documentation links. It supports GHC versions from 9.6.7 to 9.14.1.
Đang tải bình luận…