HaskellのRookie学習再帰関数は、Charsのリストを受け取って同じCharのリストを返す再帰関数toUpperとtoLowerをどのように作成できますか?私はchrとord関数を使って解決しようとしましたが、ordのシグニチャは[Char] - > [Int]ではなくChar - > Intであり、toUpperとtoLowerのものと一致しません。何か案は?Haskellで "ord"関数の署名を変更するにはどうすればよいですか?
0
A
答えて
-3
今は気にしないでください。場合には誰もがそれを必要とする:
toUpper::[Char] -> [Char]
toUpper [] = []
toUpper (x:xs) = chr(ord(x)-32):toUpper(xs)
toLower::[Char] -> [Char]
toLower [] = []
toLower (x:xs) = chr(ord(x)+32):toLower(xs)
3
これはmap
機能が何をするかを正確です:それは(どんな種類a
とb
用)タイプa -> b
の機能を取り、新しい機能[a] -> [b]
を返します。
> :t ord
ord :: Char -> Int
> :t map ord
map ord :: [Char] -> [Int]
これは、あなたがそのUnicodeコードポイントに文字列全体を変換することができます:あなたのアプローチを実装するには、バック
> map ord "foo"
[102,111,111]
または
> map chr [102,111,111]
"foo"
、あなたはその後、ちょうど適切な関数を定義する必要がありますtoLower
とtoUpper
と一緒に使用する
> map chr (map toLower (map ord "MyStRiNg"))
mystring
> map chr (map toUpper (map ord "MyStRiNg"))
MYSTRING
(モジュールData.Char
は既にtoLower, toUpper :: Char -> Char
を提供しています。 )自分の実装を確認するためにそれらを使用することができます。
関連する問題
- 1. 署名入りインストーラ(WiX)のUACプロンプトでアイコンを変更するにはどうすればよいですか?
- 2. 署名ユーザーをAPI経由でCarbonCopyユーザーに変更するにはどうすればよいですか?
- 3. 雄弁に関係関数の名前を変更するにはどうすればいいですか?
- 4. Haskell - IO関数内で純関数を使用するにはどうすればよいですか?
- 5. AndroidネイティブCでAPK署名署名を取得するにはどうすればよいですか?
- 6. 無名関数をMATLABのシンボリック関数に変換するにはどうすればよいですか?
- 7. 関数を返すHaskell関数を作成するにはどうすればよいですか?
- 8. ファイルの署名と署名データベースを比較するにはどうすればよいですか?
- 9. 関数から既存の関数を変更するにはどうすればよいですか?
- 10. ファイルの名前を「単語」から変数に変更するにはどうすればよいですか?
- 11. ファイル名を変更するにはどうすればよいですか?
- 12. C++関数内の元の変数の値を変更するにはどうすればよいですか?
- 13. 関数を使用して変数のアドレスを変更するにはどうすればよいですか?
- 14. 関数内のグローバル変数の値を変更するにはどうすればよいですか?
- 15. プロキシでOAuthに署名するにはどうすればいいですか
- 16. スコープ付き変数を関数内から変更するにはどうすればよいですか?
- 17. VBスクリプトのファイルURLの名前を変数に変更するにはどうすればよいですか?
- 18. Cの整数変数が署名されているかどうかを確認するにはどうすればよいですか?
- 19. C++関数/変数を名前空間のローカルにするにはどうすればよいですか?
- 20. コールバックに関数名を渡すにはどうすればよいですか?
- 21. jQueryで関数内でCSSを複数回変更するにはどうすればよいですか?
- 22. Haskellで再コンパイルせずにデータ型を変更するにはどうすればよいですか?
- 23. Haskellでrange関数の型シグネチャを取得するにはどうすればよいですか?
- 24. ダニの数を変更するにはどうすればよいですか?
- 25. 関数と同じ名前の変数を使用するにはどうすればよいですか?
- 26. Angualr Jsで複数のサービスの名前を変更するにはどうすればよいですか?
- 27. ブラウザコンソールの無名関数でjavascript関数を操作するにはどうすればよいですか?
- 28. PHPの関数内で関数名を取得するにはどうすればよいですか?
- 29. 引数を変更する関数オブジェクトを作成するにはどうすればよいですか?
- 30. pythonでデコレータで関数の戻り値を変更するにはどうすればよいですか?
あなたの説明に基づいて私は 'map toUpper'または' map toLower'を提案します - しかし、私はあなたの質問が正しいかどうか確信しています – Carsten
* How *これらを使用しますか?彼らは適切に使用される場合、彼らはあなたが必要とするものであるように聞こえる。 –
'map toUpper" hello world "'はあなたに '' HELLO WORLD "'を与えます - これはあなたが話していることですか? – Carsten