[過去ログ] プログラミングのお題スレ Part17 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
938(3): 2020/07/10(金)21:08 ID:+HNczGHj(1) AAS
お題:"チューリングマシン"を使って一行CSVパーサーを作る
チューリングマシンも自作すること
【CSVの仕様】
・カラム値は「a」、「,」、「"」、の組み合わせ、または「」(値無し)しか取らない
・カラム値に「,」が含まれる場合は「"」で囲む必要がある、含まれない場合はどっちでもいい
・カラム値に「"」が含まれる場合は「\"」とエスケープする
入力例) "aa,a",aa,,"aa\"aa"
チューリングマシンからの出力例、Pythonの場合) [None, 'a', 'a', ',', 'a', None, 'X', 'a', 'a', 'X', 'X', None, 'a', 'a', None, '"', 'a', 'a', None]
(Noneは無視、'X'は区切りポイントを表している)
【開発規模】Pythonで15行程度
950: 2020/07/11(土)12:13 ID:6CWHpJ6z(1/2) AAS
>>938の生成言語
CSV → COL | COL ',' CSV
COL → '"' WCOM '"' | NCOM
WCOM → ε | 'a' WCOM | ',' WCOM | '\' '"' WCOM
NCOM → ε | 'a' NCOM | '\' '"' NCOM
状態セル10個前後でいけそう
951(2): 2020/07/11(土)12:46 ID:6CWHpJ6z(2/2) AAS
>>938 Perl 状態セル4個
$ cat input
"aa,a",aa,,"aa\"aa"
$ perl odai938 < input
[None, 'a', 'a', ',', 'a', None, 'X', 'a', 'a', 'X', 'X', None, 'a', 'a', None, '"', 'a', 'a', None]
$ cat odai938
%maton = (
'N' => { 'a' => ['N', q('a')] , ',' => ['N', q('X')] , '"' => ['Q', q(None)] , '\\' => ['E', q(None)] },
'Q' => { 'a' => ['Q', q('a')] , ',' => ['Q', q(',')] , '"' => ['N', q(None)] , '\\' => ['F', q(None)] },
'E' => { 'a' => ['N', q('a')] , ',' => ['N', q(',')] , '"' => ['N', q('"') ] , '\\' => ['N', q(None)] },
省11
989: 2020/07/14(火)11:28 ID:5rX6+9jh(7/7) AAS
>>938のお題は誰も解答しないの?
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.046s