- 403 名前:デフォルトの名無しさん mailto:sage [02/08/22 03:18]
- まずfという関数があり、それはトークンの列を受け取って題意の処理を行うと仮定します。
1. 次の関数 g v [v1, ..., vn,":"]++xs=(v++" "++v1++" "++...++" "++vn,f xs) を作りましょう。 2. gを使って関数fを定義します。関数fは、もしnがリストkに現れていたら f [n,";",v1, ..., vn,":"]++xs = (n,v1++" "++...++" "++vn):f xs そうじゃなかったらf xsを返します。fの定義はkのスコープの中で行われるものとします。 3. 最後に二つの関数をまとめてansを作りましょう。ansはキーのリストとトークンのリストをとり、 f,gを内部で定義してfにトークンのリストを渡します。 宿題の答えを書くのもアレなので、こういうかたちにしてみました。
|

|