41554 blogs · [ { "id": "01a08755-d846-72f6-a348-d84e64c7e905", "title": "Fast Arcsine in Apple", "url": "http://blog.vmchale.com/article/asin", "published_at": "2026-03-14T16:49:32+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e65181e91", "title": "Doubly-linked Lists in Haskell", "url": "http://blog.vmchale.com/article/dllist", "published_at": "2026-03-10T15:15:19+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e65dfa251", "title": "Python Is Truly Dynamically Typed", "url": "http://blog.vmchale.com/article/dynamic-types-unitype", "published_at": "2025-04-08T21:42:57+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e6612e53d", "title": "Array Offsets from Indices Are Multibase Digits", "url": "http://blog.vmchale.com/article/j", "published_at": "2025-04-08T19:45:12+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e67109fbe", "title": "Universally Quantified Types Are Not Templates", "url": "http://blog.vmchale.com/article/types-templates", "published_at": "2025-02-15T23:04:55+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e67c643cc", "title": "Performance of Sharing", "url": "http://blog.vmchale.com/article/sharing-performance", "published_at": "2025-02-10T10:47:57+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e67f1d029", "title": "Matching R's Performance Takes Nothing Special", "url": "http://blog.vmchale.com/article/r-perf", "published_at": "2025-01-27T16:14:36+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e6812d791", "title": "A Proper X86 Assembler in Haskell Using the Escardó-Oliva Functional", "url": "http://blog.vmchale.com/article/escardo-oliva-functional", "published_at": "2025-01-18T21:46:10+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e68fd761b", "title": "Strides Are Scans", "url": "http://blog.vmchale.com/article/stride-scan", "published_at": "2024-10-08T15:10:51+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e69f61c64", "title": "QuickCheck With Shape Types", "url": "http://blog.vmchale.com/article/quickcheck-shape-types", "published_at": "2024-07-28T16:56:37+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e6a27780d", "title": "Softmax in Apple As an Example of Explicit Rank", "url": "http://blog.vmchale.com/article/softmax-apple-rank", "published_at": "2024-07-25T19:50:53+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e6ab53769", "title": "Optimizing Array Code With Inferred Type Information", "url": "http://blog.vmchale.com/article/rank-optimizations", "published_at": "2024-07-18T18:11:04+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e6ae9ae54", "title": "Lessons from Writing an Array Compiler II", "url": "http://blog.vmchale.com/article/apple-failures-ii", "published_at": "2024-07-06T23:15:41+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e6b7927d1", "title": "Extracting Compiler Version from Compiled Binaries Using Jacinda", "url": "http://blog.vmchale.com/article/ja-compiler-version", "published_at": "2024-05-19T20:18:29+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e6c59be19", "title": "Three Languages", "url": "http://blog.vmchale.com/article/three-languages", "published_at": "2024-05-19T19:52:14+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e6d3ada18", "title": "Better Vim Tags With Jacinda", "url": "http://blog.vmchale.com/article/better-tags", "published_at": "2024-05-19T16:04:43+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e6da9b64d", "title": "Laziness, A.k.a. Computer Science", "url": "http://blog.vmchale.com/article/laziness-compsci", "published_at": "2024-04-15T21:33:37+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e6e7f76db", "title": "Unix As an IDE II", "url": "http://blog.vmchale.com/article/unix-ide-ii", "published_at": "2024-03-23T16:28:16+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e6f5ea977", "title": "The Unix Command-line As an IDE", "url": "http://blog.vmchale.com/article/unix-ide", "published_at": "2024-03-19T18:09:03+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7034ec9f", "title": "Utility of AWK", "url": "http://blog.vmchale.com/article/awk-unix", "published_at": "2024-03-18T11:50:49+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e70522f00", "title": "Sed Examples in Jacinda", "url": "http://blog.vmchale.com/article/sed-jac", "published_at": "2024-02-20T15:25:19+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e70b8990c", "title": "Num Instances for ASTs", "url": "http://blog.vmchale.com/article/ir-instances", "published_at": "2024-01-16T20:21:48+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e70d2b2b5", "title": "Linear Types for Manipulating Expressions in the Lambda Calculus", "url": "http://blog.vmchale.com/article/linearity-renaming", "published_at": "2024-01-04T18:09:45+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e711d0927", "title": "Linear Effects Handling", "url": "http://blog.vmchale.com/article/splitting-effects", "published_at": "2023-11-17T20:53:06+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e721784f8", "title": "C Converges to Intuitionistic Logic", "url": "http://blog.vmchale.com/article/intuitionist-c", "published_at": "2023-11-01T20:05:11+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e725af0ee", "title": "Logic Programming Doesn't Work in the Real World", "url": "http://blog.vmchale.com/article/monad-logic", "published_at": "2023-10-26T19:45:07+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e72952a1f", "title": "Egison's Pattern-matching via Logic Programming", "url": "http://blog.vmchale.com/article/curry-egison", "published_at": "2023-10-21T16:23:11+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e73194c05", "title": "Lessons from Writing an Array Language Compiler", "url": "http://blog.vmchale.com/article/apple-failures", "published_at": "2023-10-02T13:51:05+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e73c698f7", "title": "Compiling Functions to Jumps", "url": "http://blog.vmchale.com/article/jumps-procedures", "published_at": "2023-08-04T20:28:34+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e74b2804f", "title": "Basic Blocks À La Appel", "url": "http://blog.vmchale.com/article/bb-liveness", "published_at": "2023-06-07T15:03:34+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e74efa7dc", "title": "Elliptic Fourier Series in Apple", "url": "http://blog.vmchale.com/article/elliptic-fourier", "published_at": "2023-01-28T23:57:10+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e75c97f21", "title": "Rosetta", "url": "http://blog.vmchale.com/article/bqn-windows", "published_at": "2023-01-23T21:24:38+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7691dbdd", "title": "Follow-up: Typed Elliptic Fourier Series", "url": "http://blog.vmchale.com/article/typed-arrays", "published_at": "2023-01-14T03:28:13+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e771aaf4d", "title": "Infelicities With Traditional Compiler Architecture on X86", "url": "http://blog.vmchale.com/article/x86-infelicities", "published_at": "2022-11-11T15:58:04+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e77ffeb01", "title": "Calling System Functions in a JIT", "url": "http://blog.vmchale.com/article/jit", "published_at": "2022-10-20T16:40:42+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e789084d3", "title": "Row Types in Haskell", "url": "http://blog.vmchale.com/article/row-types", "published_at": "2022-10-02T16:11:27+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e789498c7", "title": "Typing APL: Elliptic Fourier Series As an Example", "url": "http://blog.vmchale.com/article/typed-elliptic-fourier", "published_at": "2022-09-30T16:31:00+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e78d60bfd", "title": "APL Is Truly Different", "url": "http://blog.vmchale.com/article/apl-different", "published_at": "2022-08-26T15:04:50+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7927e180", "title": "Imitating Cloc With Jacinda", "url": "http://blog.vmchale.com/article/ja-cloc", "published_at": "2022-03-29T16:27:23+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7975e708", "title": "Names in Haskell Compilers", "url": "http://blog.vmchale.com/article/intern-identifiers", "published_at": "2022-03-28T09:16:41+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e79beaa19", "title": "Finding Cruft in Patches With Jacinda", "url": "http://blog.vmchale.com/article/ja-git", "published_at": "2022-03-25T15:07:28+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7a2c11fa", "title": "Generating Other-extensions for Cabal Files", "url": "http://blog.vmchale.com/article/hs-extensions", "published_at": "2022-03-21T18:56:31+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7a721157", "title": "Transparent Programming", "url": "http://blog.vmchale.com/article/transparent-programming", "published_at": "2022-02-23T16:43:11+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7b09ecd1", "title": "Awk, Mawk, Gawk Performance", "url": "http://blog.vmchale.com/article/awk-perf", "published_at": "2022-01-25T14:31:32+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7bb14606", "title": "Deduplication on the Command Line", "url": "http://blog.vmchale.com/article/jac-dedup", "published_at": "2022-01-21T02:02:44+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7c4e3de0", "title": "Generating Vim Tags With Jacinda", "url": "http://blog.vmchale.com/article/jacinda-tags", "published_at": "2022-01-15T19:30:25+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7cbb2fbe", "title": "Unix Meets APL", "url": "http://blog.vmchale.com/article/awk-pathsplit", "published_at": "2022-01-12T01:30:51+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7d603588", "title": "Processing Compiler Errors in Jacinda", "url": "http://blog.vmchale.com/article/compiler-awk", "published_at": "2022-01-11T21:09:24+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7d8c36e9", "title": "The !-modality Is a Comonad", "url": "http://blog.vmchale.com/article/exponential-modality", "published_at": "2021-11-28T21:55:34+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7ddfdf75", "title": "Linting for Concatenative Programming", "url": "http://blog.vmchale.com/article/linting-concatenative", "published_at": "2021-11-18T19:15:25+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7e6107df", "title": "The Interesting Part of Monadic Effects", "url": "http://blog.vmchale.com/article/effects", "published_at": "2021-11-03T17:58:47+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7eab7ade", "title": "Compiler Technologies behind Logics", "url": "http://blog.vmchale.com/article/logic-technologies", "published_at": "2021-09-05T09:21:34+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e7f1e3901", "title": "Shoelace Iteration", "url": "http://blog.vmchale.com/article/shoelace", "published_at": "2021-06-26T12:35:35+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e80151190", "title": "Adequate J Matrix Performance", "url": "http://blog.vmchale.com/article/j-performance", "published_at": "2021-06-10T14:48:49+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e80dfc977", "title": "Dimension Is a Functor", "url": "http://blog.vmchale.com/article/dimension-functor", "published_at": "2021-06-10T14:43:04+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e81469393", "title": "Artisanal Neural Networks", "url": "http://blog.vmchale.com/article/mnist-arrays", "published_at": "2021-06-10T14:40:35+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e81990d42", "title": "Tricks for Compilers in Haskell", "url": "http://blog.vmchale.com/article/ann", "published_at": "2021-03-13T14:58:10+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e8204f892", "title": "Laconic J", "url": "http://blog.vmchale.com/article/j-concise", "published_at": "2021-03-03T16:52:43+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e824c9040", "title": "Keto Is Terrible for Weight Loss", "url": "http://blog.vmchale.com/article/keto-wl", "published_at": "2020-07-09T14:34:43+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e82a77527", "title": "Strict Data Structures Do Not Improve Performance", "url": "http://blog.vmchale.com/article/strictness-annotations", "published_at": "2020-06-30T13:10:46+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e833aa3fb", "title": "Type-safe Pointers in ATS", "url": "http://blog.vmchale.com/article/ats-safe-pointers", "published_at": "2020-03-27T17:26:25+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e83771820", "title": "Using Templates in ATS", "url": "http://blog.vmchale.com/article/ats-templates", "published_at": "2019-10-28T16:34:08+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e83eca8bd", "title": "For Loops and GCC vs. Hand-optimized Rust", "url": "http://blog.vmchale.com/article/for-loops", "published_at": "2019-10-18T20:02:57+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e849f545a", "title": "Performant Perceptual Hashing Using HIP and Repa", "url": "http://blog.vmchale.com/article/fast-phash", "published_at": "2019-07-22T13:25:48+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e84eeb3be", "title": "Computer Science Is a Superset of Mathematics", "url": "http://blog.vmchale.com/article/secret-santa", "published_at": "2019-07-21T23:41:16+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e85953996", "title": "Projective Programming", "url": "http://blog.vmchale.com/article/projective-programming", "published_at": "2018-09-10T00:36:04+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e85c856fe", "title": "Curry vs Uncurry on Hackage", "url": "http://blog.vmchale.com/article/curry-uncurry", "published_at": "2018-08-09T22:30:17+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e85ca8ba1", "title": "Benchmarking the Edit Distance", "url": "http://blog.vmchale.com/article/levenshtein-performance", "published_at": "2018-07-27T17:54:06+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e86955e46", "title": "A Look at the Packages on Hackage", "url": "http://blog.vmchale.com/article/hackage-analysis", "published_at": "2018-04-18T01:41:47+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e8704b0d2", "title": "An Old English Name Generator in Madlang", "url": "http://blog.vmchale.com/article/old-english", "published_at": "2018-04-17T17:01:42+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e87be6874", "title": "Mendler-style Catamorphisms", "url": "http://blog.vmchale.com/article/mendler-catamorphisms", "published_at": "2018-04-12T17:42:18+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e88bae933", "title": "Co-(Elgot Algebra)s in the Wild", "url": "http://blog.vmchale.com/article/practical-coelgot-algebras", "published_at": "2018-04-11T07:41:13+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e88dcfed1", "title": "Using ATS Libraries in Haskell", "url": "http://blog.vmchale.com/article/ats-haskell", "published_at": "2018-04-02T21:57:55+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e88e6164a", "title": "Cross-compiling ATS", "url": "http://blog.vmchale.com/article/atspkg-cross-compile", "published_at": "2018-03-29T05:26:57+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e890483bd", "title": "Some Examples and Non-examples of Monads", "url": "http://blog.vmchale.com/article/monad-examples", "published_at": "2018-03-26T15:56:12+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e89256cec", "title": "ATS in Haskell Packages", "url": "http://blog.vmchale.com/article/polyglot-builds", "published_at": "2018-02-24T00:09:04+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e893fa529", "title": "Euler's Totient Function in ATS", "url": "http://blog.vmchale.com/article/ats-totient", "published_at": "2018-01-08T05:18:58+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e89fa3478", "title": "Speeding up Math With ATS", "url": "http://blog.vmchale.com/article/ats-math", "published_at": "2018-01-01T05:49:56+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e8af1ef49", "title": "Advanced Control Flow", "url": "http://blog.vmchale.com/article/recursion-examples", "published_at": "2017-12-14T23:20:37+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e8be963e6", "title": "Linear Types in ATS", "url": "http://blog.vmchale.com/article/ats-linear", "published_at": "2017-12-03T05:55:34+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e8cb0ce6f", "title": "Matrix Algebra in Idris", "url": "http://blog.vmchale.com/article/idris-matrices", "published_at": "2017-11-14T07:10:09+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e8cda5d64", "title": "Computing Catalan Numbers Using Dynamorphisms", "url": "http://blog.vmchale.com/article/dynamorphisms-idris", "published_at": "2017-10-12T05:30:33+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e8d08d567", "title": "Performant Elgot Algebras", "url": "http://blog.vmchale.com/article/elgot-performance", "published_at": "2017-09-23T17:14:24+00:00" }, { "id": "01a08755-d846-72f6-a348-d84e8d3910cc", "title": "Computing Continued Fractions With Apomorphisms", "url": "http://blog.vmchale.com/article/continued-fractions", "published_at": "2017-09-12T03:07:04+00:00" } ] posts Claim your blog
Back to blog.vmchale.com
Blog · corpus.blog/blogs/blog.vmchale.com/posts

blog.vmchale.com

blog.vmchale.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017