Haskellの使い方知ってますか?
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNG作り方をご存知の方いらっしゃいませんか?
↓こんなのを
main> formatTable [["a"@`"b"@`"c"] ++ ["d"@`"e"@`"f"]]
↓こんな風にしたいんです。
main>
a b c
d e f
0002名無しさん@お腹いっぱい。
NGNG問題見直して!
0003名無しさん@お腹いっぱい。
NGNG全部書いちゃうと、問題は、formatTableのファンクションを作れって事なんですけど・・
↓タイプ (すでにもう決まってる。)
formatTable :: [[String]] -> String
↓こんな風にインプットしたら
main> formatTable [["a"@`"b"@`"c"]@`["ad"@`"ae"@`"af"]]
↓こんなアウトプット
main>"a b c \nad ae af"
↓ちなみにputStrを使ってインプットすると
main>putStr (formatTable [["a"@`"b"@`"c"]@`["ad"@`"ae"@`"af"]])
↓こんな風なアウトプット
main>
a b c
ad ae af ←ちゃんと綺麗にそろってる。
Haskellに関しての情報がなかなか集められません。 どなたか助けて下さい。
0004名無しさん@お腹いっぱい。
NGNGformatTable :: [[String]] -> String
formatTable [] = ""
formatTable (a:b) = formatRow a ++ "\n" ++ formatTable b
where formatRow [] = ""
formatRow (a:b) = a ++ " " ++ formatRow b
ってのがカンタンな解答のうちのひとつだな。
Haskell は日本語の参考書はたぶんない。(学生思いの先生だなあ!)
http://haskell.org/ だ。
0005名無しさん@お腹いっぱい。
NGNG丁重な返信ありがとうございます。暗闇の中に一寸の光が見えた感じです。
これからは気合で英語のページを読みまくります。
本当にありがとうございました。
00061です。 名前はタカです。
NGNGまず、length ファンクションで文字数をゲットした後、maximumファンクションで
リストの中の最大文字数をゲット、リスト内の文字数から最大文字数をマイナスして、
足りない文字数をゲット。 その足りない文字数を””に変えて、それをリストに足していく
って感じなんですけど、いくつか問題が・・・・。
文字数を””に変えるファンクションなんですけど、こんな感じまでは頭から出てきたんですけど・・。
(もちろんまったく動きません・・。)
convert x |x >0 = (++" ") (x-1)
この(x-1)はどこに置けばいいのですか? あと(x = 0)になったら終わりってのを何所に付け加えるのですか?
もう一つ質問。リスト内のすべての数から1を引く場合のファンクションの作り方はどのようにすればいいのですか?
たとえば、[[1@`2@`3]@`[4@`5@`6]] から1を引いて、アウトプットは[[0@`1@`2]@`[3@`4@`5]]
先生様、もしまだこの板を見ていらしてたら、どうかこの迷える子羊に教えて頂けないでしょうか?
0007名無しさん@お腹いっぱい。
NGNGリストのすべての要素に関数を適用するのは map だ。map の定義は Prelude を
読むこと。リストのリストの各要素に関数を適用するなら
map (map (\a -> a-1)) [[1@`2@`3]@`[4@`5@`6]]
のように。
文字列を n 文字にそろえるなら
fillSp :: Int -> String -> String
fillSp 0 _ = ""
fillSp n "" = ' ':fillSp (n-1) ""
fillSp n (s:ss) = s:fillSp (n-1) ss
では。
■ このスレッドは過去ログ倉庫に格納されています