Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
sre_introduction.pdf
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Niyarin
July 06, 2019
Programming
0
550
sre_introduction.pdf
Niyarin
July 06, 2019
Tweet
Share
More Decks by Niyarin
See All by Niyarin
Scheme用nREPLの開発(エラー出力の改善)
niyarin
0
170
bel lispの紹介
niyarin
0
780
nanopass-compiler-frameworkを使ってみました
niyarin
0
470
Gorgos-parser-combinator-written-in-scheme
niyarin
0
410
outputting-beautiful-s-expression
niyarin
0
410
Serialisp
niyarin
1
710
Mongo DBとS式検索
niyarin
0
350
goodbye-python-repl
niyarin
0
390
SchemeのEphemeronとWeak Pairの説明
niyarin
0
1.1k
Other Decks in Programming
See All in Programming
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
170
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
220
Fundamentals of Software Engineering In the Age of AI
therealdanvega
2
300
Smarter Angular mit Transformers.js & Prompt API
christianliebel
PRO
1
100
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
1.4k
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
150
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
5k
AWS×クラウドネイティブソフトウェア設計 / AWS x Cloud-Native Software Design
nrslib
16
3.4k
L’IA au service des devs : Anatomie d'un assistant de Code Review
toham
0
150
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
250
ロボットのための工場に灯りは要らない
watany
12
3.2k
飯MCP
yusukebe
0
410
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
500
Information Architects: The Missing Link in Design Systems
soysaucechin
0
850
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
エンジニアに許された特別な時間の終わり
watany
106
240k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.3k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
260
The Spectacular Lies of Maps
axbom
PRO
1
660
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
260
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
660
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Statistics for Hackers
jakevdp
799
230k
Transcript
SchemeのS式正規表現は良いぞ (本当はClojureに移植した話をするつもりだった) Niyarin
SREとは ・正規表現をS式で表現したもの [ABC]+[0-9]{0,3}.? `(: (+ ,char-set:ABC) (repeated 0 3 num)
(? any)) 1
・SRFI115 あるいは R7RS large (scheme regex) Sagittarius Scheme、Chibi Schemeとか ・Guileのirregex
文法はSREとだいたい同じ SREの仕様 2
・たとえば、1文字以上の繰り返しは、+だけでなく、 one-or-moreという表現ができる --> 不慣れでも読みやすい正規表現が書ける SREの紹介(1)シンボルが使えるメリット1 (+ “abc”) (one-or-more “abc”) 3
・文字列とシンボルの2つあるのはいいことだ ・無制限に名前付けができる SREの紹介(2)シンボルが使えるメリット2 任意の一文字: any アルファベット:alphabetic 16進数文字:hex-digit 単語:word 4
・部分的にSchemeコードを挿入して評価で展開できる SREの紹介(3)quasi-quote `(one-or-more “abc” ,something “def”) 5
・SRFI44(scheme set char) 文字の集合データ構造 ・[ ] ⇐よりも自由に文字の集合を使える SREの紹介(4)データ構造の挿入ができる (char-set #\a
#\b #\c) ;a,b,cの文字の集合 (char-set-filter (lambda (c ) (not (char=? c #\z))) char-set:letter) ;z以外のレターの集合 6
・のんびりしていたから ・当初SRE->Clojure(Java)正規表現をやるつもりだった マッチングは実装しなくてよいしすぐ終わると思っていた.. X SREの表現力の幅のほうが大きかった Clojureへの移植が遅れた言い訳 無理ではないけど、表現を落とす実装コストがかかる 7
・S式なのでパーサ実装コストは省ける ・マッチングはNFA/DFA、VM 、微分型とかで実装できる “正規表現技術入門 ――最新エンジン実装と理論的背景” という本が良い → CLに移植しませんか? それでも実装は楽 8
・S式で表現するとのはよいこと ・実装遅れたのはSREが良すぎたせい ・暇な人は実装しよう まとめ
・S式にするとよいものは他になにがあるのか? SXML(S式XML文法) おわり (tag (@ (attr1 "value1") (attr2 "value2")) (nested
"Text node") (empty)) DBクエリとか? SXQL