{"blog_title":"\u307f\u305a\u3074\u30fc\u65e5\u8a18","version":"1.0","author_url":"https://blog.hatena.ne.jp/mzp/","provider_url":"https://hatena.blog","blog_url":"https://mzp.hatenadiary.org/","url":"https://mzp.hatenadiary.org/entry/20070628/lisp","author_name":"mzp","title":"S\u5f0f\u8a08\u7b97\u6a5f","published":"2007-06-28 00:00:00","type":"rich","categories":["OCaml","30\u5206\u30d7\u30ed\u30b0\u30e9\u30e0"],"provider_name":"Hatena Blog","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fmzp.hatenadiary.org%2Fentry%2F20070628%2Flisp\" title=\"S\u5f0f\u8a08\u7b97\u6a5f - \u307f\u305a\u3074\u30fc\u65e5\u8a18\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","height":"190","width":"100%","description":"30\u5206\u30d7\u30ed\u30b0\u30e9\u30e0\u3001\u305d\u306e68\u3002\u8d85\u7c21\u5358S\u5f0f\u8a08\u7b97\u6a5fid:mzp:20070623:sexp\u306e\u7d9a\u304d\u3002 #load \"camlp4o.cma\";; (* parsing *) open Genlex;; let ($) f g = f g;; type s_exp = Num of int | Symbol of string | List of s_exp list | Proc of (s_exp list -> s_exp);; let lexer = Genlex.make_lexer [\"(\";\")\";\"*\"];; let stream = lexer (Stream.of_string \"(\u2026","image_url":null}