第15章:解析器
1.引數解析
- 解析器 parser 指的是從序列化之後的型別中提取出需要的資料型別的一類函式
對於簡單的解析工作,可以使用Either資料型別以及他的應用例項
data Either a b = Left a | Right b instance Functor (Either a) where fmap _ (Left x) = Left x fmap f (Right y) = Right (f y) instance Applicative (Either e) where pure = Right Left e <*> _ = Left e Right f <*> r = fmap f r
組合Either的關鍵:如果左邊的計算失敗了,就不在關心右側的值,而是把整個計算結果都標記成Left e
任何解析器的核心都是建立在類似Either的資料結構之上,來實現及時的報錯和解析結果的自由組合
2. optparse-applicative
- 以optparse-applicative為例
- 沒有測試
3.選擇解析
- Parser型別不僅是是一個應用函子,還是一個選擇應用函子,於是可以使用<|>來連線它們
理解不深入,回頭再看
相關文章
- 第 15 章 CSS 文字樣式[上]CSS
- 第 15 章 CSS 文字樣式[下]CSS
- 第15.16.17章學習筆記筆記
- 第 15 章 標籤頁和工具提示外掛
- 第15 章 物理日誌記錄、檢查點和快速恢復; 第16 章 管理物理日誌
- 《父與子的程式設計之旅(第3版)》第15章習題答案程式設計
- Android程式設計權威指南(第2版)—第15章挑戰練習Android程式設計
- 讀書筆記之《現代軟體工程》第5.5章、第6章、第7章筆記軟體工程
- 第 1 章 JavaJava
- 第1章NginxNginx
- 第6章 Java APIJavaAPI
- 第3章筆記筆記
- 第4章函式函式
- 第1章 Why RustRust
- 第 6 章 表格元素
- 第 7 章 文件元素
- 第 8 章 嵌入元素
- 第1章 jQuery 起步jQuery
- 第1章jQuery起步jQuery
- 第10章MySQLConnectorsMySql
- 第14章PhpDigPHP
- 第6章minifierNifi
- [Android開發藝術探索閱讀筆記]第15章 效能優化Android筆記優化
- 第2章 功能實現
- 第1章 安裝RailsAI
- 第2章 Python序列Python
- 第1章 認識excelExcel
- Java學習第1章Java
- 第 3 章 文字元素字元
- 第 5 章 分組元素
- 第 12 章 CSS 入門CSS
- 第 1 章 Bootstrap 介紹boot
- 第4章gulpjsJS
- 第3章 系統架構架構
- 第1章 DevOps的理想dev
- 第1章 pytest入門
- 第 22 章 備忘錄模式模式
- 第 4 章 程式計數器