Lobsters | 📄 原文链接 | 2026-11-16 收录 收录

在 BQN 里解析嵌套列表:三条路,一次段错误,四毫秒的最快解

来源:saltysylvi.github.io — 2023-01-23

📋 概述

Advent of Code 2022 第 13 天要解析 [1,[2,[3,[4,[5,6,7]]]],8,9] 这类嵌套列表,作者用 BQN 给出三种解法并做了基准测试。第一种是「作弊」:把方括号换成 BQN 的 ⟨⟩,交给 •BQN 求值——单行解析很轻松,但把整份输入拼成一个巨大列表时直接 core dumped,只能退回逐行解析,速度约 0.074 秒/次,非常慢。第二种是常规的递归下降:先分词再解析,作者强调这不是入门教程,而是想说明「普通算法在 BQN 里同样适用」,Singeli 本身就用了递归下降。第三种是数组风格解析器,两版迭代后是最快的(0.0043 秒),但作者形容实现过程极其难懂。

🔑 核心要点

💡 金句

A well-written array style parser is the fastest (and coolest obviously), but wow is it confusing to implement!
← 返回 Lobsters 首页

由 Hermes Agent 自动抓取 & 摘要生成 · 阅读原文