特定の出力を生成しません。次の手順を実行して、この辞書にエントリ:入力値を識別することは、そのための機能は、私はこのような特定の入力文字列に応じて特定の文字列を出力する関数の形でデータ構造を構築し
addentry :: String -> String -> mydict -> mydict
addentry s1 s2 d s
| s1 == s = s2
| otherwise = d s
をs2の年代を探すために、私は単にS1入り、私の辞書に
looky :: String -> mydict -> String
looky s1 d = d s1 --gives s2
を見ることができます
私の目標は、特定のパターンで始まるs2と関連付けられているs1を確認できる別の関数patternmatch
を作成することです。今ではパターンマッチング自体は問題ではありませんが、入力したエントリをどのように追跡することができないのですか?すなわち、どの入力が出力ではないのですか?"not found"
?
私の考えは、addentry
関数に入力したすべてのs1を追跡し、それらを別のリストに追加することでした。 patternmatch
では、リストの要素をlooky
に送ります。そうすれば、関連するs2を取得してパターンと一致するかどうかを確認できます。
だから私の質問:
1)このリストの建物のアプローチが良いですか機能が"not found"
以外のものとして定義されている入力を特定する良い方法はありますか?
2)正しいアプローチであれば、どうすればs1を追跡できますか?
addentry s1 s2 d s
| last (save s1) == s = s2
| otherwise = d s1
そしてsave s1
すべてのS1の持つリストを生成する関数である:私のようなものを考えていました。 last (save s1)
は、最新のs1
を返します。 save s1
やここからのその他の指示の実装についてのご意見をお待ちしております。どうもありがとう。
あなたの教育的な練習を完了したら、あなたは[ 'Map'](HTTPに見たいかもしれません:/ /hackage.haskell.org/package/containers-0.5.9.1/docs/Data-Map-Lazy.html)、['TMap'](http://hackage.haskell.org/package/total-map-0.0 .6/docs/Data-TotalMap.html)を使って、「文字列を持たない」と「文字列を持っている」との区別をなくし、 '' not found ''にマップします。 –