An explainer addresses a recurring language-design question: why don't programming languages make mutable and immutable versions of a data structure subtypes of each other. Using the Liskov substitution principle and a simple pair data structure example, it shows that mutable pairs can't substitute for immutable ones because immutability carries an implicit contract (e.g., stable hash values) that mutation would violate, even though a mutable pair supports every operation an immutable one does. The piece also covers how ad hoc polymorphism (type classes, interfaces, traits, duck typing) can let both types share operation names like car/cdr without forming an unsound subtype hierarchy, referencing Wadler and Blott's type class formalism.
Nguồn: https://crumbles.blog/posts/2026-09-17-immutable-mutable.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.
Đang tải bình luận…
Bối cảnh: Bài viết là bài tiểu cá nhân khám phá ba tính năng ngôn ngữ lập trình yêu thích của tác giả. Nguyên nhân kỹ thuật: Ba tính năng này bao gồm flow typing (Crystal và TypeScript), Rust's borrow checker và D's contract programming, mỗi tính năng đều giải quyết các vấn đề cụ thể về type safety và quản lý bộ nhớ. Hệ quả: Ví dụ minh họa bằng class bank account trong D cho thấy cách các invariant giúp bảo toàn tính toàn vẹn dữ liệu. Điều đáng học: Những tính năng này chứng minh tầm quan trọng của việc tích hợp static typing và kiểm tra tại runtime để xây dựng phần mềm đáng tin cậy hơn.
Bài này giúp bạn hiểu rõ ba tính năng lập trình mạnh mẽ nhất từ Crystal, Rust và D để nâng cao kỹ năng viết code an toàn và hiệu quả.
Bối cảnh: Khi viết generic code, việc khai báo các kiểu dữ liệu có mối quan hệ tuần hoàn (mutually‑recursive) thường gây khó khăn vì compiler không tự động hiểu vòng lặp tham chiếu. Nguyên nhân kỹ thuật: Để tạo type contracts cho các kiểu này, bạn phải sử dụng kỹ thuật mutually referencing type parameters, tức là định nghĩa các tham số kiểu lồng nhau sao cho chúng chỉ ra lẫn nhau một cách rõ ràng. Hệ quả: Nếu không áp dụng cách này, compiler sẽ báo lỗi hoặc tạo ra code không kiểm soát được, khiến contract không được áp dụng và kiểu dữ liệu không được kiểm tra đúng. Điều đáng học: Bạn nên học cách triển khai contract bằng cách tạo ra các tham chiếu lẫn nhau trong khai báo kiểu, vì đây là cách duy nhất để viết generic code an toàn cho các cấu trúc phức tạp. Vì vậy, nếu bạn đang cân nhắc đọc bài gốc, hãy xem cách họ thực hiện pattern này để hiểu rõ hơn về cách áp dụng type contracts trong thực tế.
Bài hướng dẫn này giúp lập trình viên viết mã generic đúng cách cho các kiểu đệ quy hoặc tương hỗ đệ quy.
Generics từng là tính năng mới trong Go và giờ đã phát triển qua các phiên bản gần đây, với những cải tiến được Dolt tích hợp vào dự án.
Lập trình viên Go nên đọc bài này để hiểu cách tương tác với Generic trong Go—công cụ mới giúp viết mã linh hoạt hơn, giảm sự phụ thuộc vào kiểu dữ liệu cụ thể, và tối ưu hóa hiệu suất cho các ứng dụng hiện đại.
The Erlang, Elixir and Gleam conference in Europe - 2 days of talks,discussions and networking for the BEAM community.
Folklore trick for dollar-store dependent types
The Glasgow Haskell Compiler team has released GHC 10.0.1-alpha1, the first alpha of a major upcoming version. Key changes include GHC2024 becoming the default language edition, Type and Constraint now being fully distinct kinds, a new QualifiedStrings extension, simplified static forms, re-enabled polymorphic specialisation by default, bytecode libraries writable to disk, new static linking flags, AArch64 SIMD support, a new poll I/O manager as default on POSIX (except macOS), version 2 of the GHC Jobserver Protocol (requiring cabal-install 3.18+), a raised minimum bootstrap compiler (GHC 9.10), LLVM support up to version 23, and dropped bindists for older Debian/Ubuntu releases in favor of Debian 13. Binaries, source, and documentation are available via downloads.haskell.org and GHCup, alongside a migration guide for adapting existing programs.
An argument that Runtime Type Information (RTTI) is a linear, measurable cost while Compile-Time Type Information (CTTI), often marketed as 'zero-cost', scales exponentially across semantic checking, code generation, and binary size when combined with parametric polymorphism. The author, creator of the Odin language, explains why RTTI table lookups stay constant-cost regardless of type count, whereas generic/templated code monomorphizes into N^K instantiations that bloat compile times and binaries. Odin uses RTTI by default (e.g. fmt.println, serialization) with struct field tags similar to Rust's serde, reserving CTTI (via base:intrinsics) for hot paths needing specialization. The piece argues for a data-driven RTTI approach over a code-driven CTTI approach as a language design philosophy, while acknowledging RTTI's own costs (memory, table lookups, exposed type info).
Bản tin Haskell Weekly số 535 tổng hợp tin tức cộng đồng gồm video từ hội thảo Haskell Implementors' và Ecosystem 2026, hướng dẫn mô phỏng mạch số bằng Haskell theo SICP, mẹo tăng tốc vòng lặp với GHCi và flags của GHC/Cabal, nỗ lực hồi sinh sách 'Real World Haskell', phỏng vấn ứng dụng hệ thống kiểu mạnh trong sinh học phân tử, bài nói về mô hình dữ liệu kiểu xây dựng, cùng các dự án mới như Perspec 1.0, bindings SDL3 và công cụ ghép cặp LLM local cho notebook Haskell.
Lập trình viên Haskell sẽ tìm hiểu cách tối ưu hóa hiệu suất trong môi trường phát triển bằng cách khám phá các mẹo từ GHCi và các cờ trong GHC/Cabal, đồng thời cập nhật kiến thức về các xu hướng mới trong ứng dụng thực tế như sinh học máy tính và mô hình dữ liệu xây dựng bằng kiểu.
Đọ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ử