なんか適当に
晩ご飯帰ってきてから今までニコニコ見たりゲームしながら夏休み終わりだなとか感じつつ、なんか適当に書いていました。
のでそれをペタリ
まだ途中というか、parsecよりMonadに慣れる為にもわざわざ自分で書いた方が良いだろうなという事でまたもParse Monadとか書きつつ次の様な事をやってます。
main = putStr $ s2html1 $ get $ (ext_parser ex3) "(form [(name myFORM)] (input [(type text) (name address)] dummy) (input [(type button) (value check) (onClick check)] dummy))"
↓
<form name = "myFORM"> <input type = "text" name = "address"> dummy </input> <input type = "button" value = "check" onClick = "check"> dummy </input> </form>
なんかこんなん。
既にありそうですけど、取りあえずそういうネタバレは書き終わってから見ます。
dummy削除
(form [(name myFORM)] (input [(type text) (name address)]) (input [(type button) (value check) (onClick check)]))
↓
<form name = "myFORM"> <input type = "text" name = "address" /> <input type = "button" value = "check" onClick = "check" /> </form>
もちっと進んだ
(html (head (title mailcheck)) (body (form [(name myFORM)] (input [(type text) (name address)]) (input [(type button) (value check) (onClick checkMailAddress)]) ) ) ) ;あえてXMLっぽく
↓
<html> <head> <title> mailcheck </title> </head> <body> <form name = "myFORM"> <input type = "text" name = "address" /> <input type = "button" value = "check" onClick = "checkMailAddress" /> </form> </body> </html>
JavaScriptとか
も親和性を考えないといけない。
例えば、上のonClickは本来は
.. onClick = "return checkMailAddress()" />
になってるわけで。
一応の手段としては、Schemeっぽく
<input type = "button" value = "check" onClick = "return checkMailAddress()" />
↓
(input [(type . "button) (value . "check) (onClick . (return (checkMailAddress)))])
とかっていう連想配列を使うが如くやれば良いんじゃねっていう。
まぁ"."は無くても、最初のsymbol以降が attr = value のvalue相当だと自明だろうから、やっぱりいらない気もする。
私Lisperじゃないのでこういう場合どうなるのか分からないっていう。
買って継続のとこだけ読んだGaucheの本を再び見てみようかしら。
と思ったらGaucheの本が無い。
誰かに貸したかな・・・。確かに大学に持ってきた筈なんだけど。Kahuaの方とか見たかった。