[過去ログ]
プログラミングのお題スレ Part13 (1002レス)
プログラミングのお題スレ Part13 http://mevius.5ch.net/test/read.cgi/tech/1549160513/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
282: デフォルトの名無しさん [] 2019/02/21(木) 19:27:21.23 ID:2zdYL4u2 >>279 Haskell main = putStrLn.concat.concat $ [map addCanma (init lst),["and,"],[last lst]] addCanma s = s ++ "," lst = ["apple","banana","orange","mango"] output: apple,banana,orange,and,mango http://mevius.5ch.net/test/read.cgi/tech/1549160513/282
285: デフォルトの名無しさん [] 2019/02/21(木) 19:51:21.05 ID:2zdYL4u2 >>283 あ、そうか。 不恰好だけどこれで一応対応。 (putStrLn.concat.concat) [init $ map addCanma $ init lst,[last $ init lst],[" and "],[last lst]] スマートな解答も考えてみるよ。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/285
287: デフォルトの名無しさん [] 2019/02/21(木) 20:20:50.88 ID:2zdYL4u2 スマートかは兎も角、一応マシな形に。 空リストや要素数1にも対応。 Haskell main = putStrLn $ last2 lst last2::[String] -> String last2 [] = [] last2 [x] = x last2 [x,y] = concat [x," and ", y] last2 (x:xs) = x ++ "," ++ last2 xs lst = map show [0..5] output: 0,1,2,3,4 and 5 http://mevius.5ch.net/test/read.cgi/tech/1549160513/287
297: デフォルトの名無しさん [] 2019/02/21(木) 22:55:49.76 ID:2zdYL4u2 >>279 >>292 Haskellでもワンライナー出来たけど、読みやすいとは思えない。(横長だし) 発想としては(要素数2以上なら)最後以外の要素(文字列)の頭に','追加して、全部結合して(大きな文字列にして)最後に頭の','を省く。 main = putStrLn.tail.concat $ if length lst < 2 then lst else [(concat.(map (\x -> ',':x)).init) lst," and ",last lst] lst = map show [0..5] 個人的に >>287 の方が発想も読みやすさも好みの書き方。 (読み難くなるなら関数分ける派) pythonのはワンライナーでも比較的読みやすくて、ちょっと羨ましい。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/297
298: デフォルトの名無しさん [] 2019/02/21(木) 22:59:16.06 ID:2zdYL4u2 >>297 弄ってるうちに要素一以下だとバグ出てた。 正しいコードはこっち。 putStrLn.concat $ if length lst < 2 then lst else [(tail.concat.(map (\x -> ',':x)).init) lst," and ",last lst] http://mevius.5ch.net/test/read.cgi/tech/1549160513/298
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.040s