[過去ログ]
ぶっちゃけ始めるのにいい言語て何 part6 (1002レス)
ぶっちゃけ始めるのにいい言語て何 part6 http://mevius.5ch.net/test/read.cgi/tech/1628771431/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
295: デフォルトの名無しさん [] 2021/08/23(月) 11:20:45.88 ID:PbwMaige >>292 その重ねまくる括弧とラムダ式みたいな特殊な記法が並んでる例を メジャーなスクリプト言語3つで比較してみました よくある「数字のリストをソートして逆順にして文字列にしてハイフンで繋ぐ」プログラム 【Ruby】 a.sort().reverse().map{|x| x.to_s}.join('-') 【JavaScript】 a.sort().reverse().map(x => x.toString()).join('-') 【Python】 '-'.join(map(lambda x: str(x), reversed(sorted(a)))) 結果はPythonだけ最後が4重括弧となってしまいました RubyとJavaScriptは手順通りに並んで読みやすいですがPythonだけ読みにくいですね http://mevius.5ch.net/test/read.cgi/tech/1628771431/295
297: デフォルトの名無しさん [sage] 2021/08/23(月) 11:27:20.26 ID:n1hZLw7w >>293 JavaScriptは拡張ではなく昔からラムダ式すなわち無名関数式がありますよ むしろ拡張でいえばアロー形式導入で見やすく括弧の数も減っています 貴方が誤解しているのではないでしょうか? >>295に見られるようにJavaScriptはわかりやすい言語の一つです http://mevius.5ch.net/test/read.cgi/tech/1628771431/297
301: デフォルトの名無しさん [sage] 2021/08/23(月) 12:40:36.40 ID:ueeBrG1Y >>295 Pythonはカッコが多くなって読みにくいな。 http://mevius.5ch.net/test/read.cgi/tech/1628771431/301
303: デフォルトの名無しさん [sage] 2021/08/23(月) 13:48:55.44 ID:WMEJY++t >>295を見るとPythonは可読性が低く保守もしにくそうですね http://mevius.5ch.net/test/read.cgi/tech/1628771431/303
308: デフォルトの名無しさん [sage] 2021/08/23(月) 14:23:37.15 ID:/6K8Gxc1 >>295 なお、ことりん 【Kotlin】 s.reversed().map { it.toString() + "-" }.joinToString() http://mevius.5ch.net/test/read.cgi/tech/1628771431/308
340: デフォルトの名無しさん [sage] 2021/08/23(月) 21:08:44.65 ID:dS401MqO >>295 Ruby >a.sort().reverse().map{|x| x.to_s}.join('-') map{|x| x.to_s} を、map( &:to_s ) と書ける Symbol#to_proc で、self に対応する、Proc オブジェクトを返します。 生成されるProcオブジェクトは、lambda です http://mevius.5ch.net/test/read.cgi/tech/1628771431/340
346: デフォルトの名無しさん [sage] 2021/08/23(月) 22:15:20.58 ID:x2dcVOdp >>295 ocaml https://ideone.com/3ys87s let f1 x = String.concat "-" (List.map string_of_int (List.rev (List.sort compare x))) (* @@ Application operator *) let f2 x = String.concat "-" @@ List.map string_of_int @@ List.rev @@ List.sort compare x (* |> Reverse-application operator *) let f3 x = List.sort compare x |> List.rev |> List.map string_of_int |> String.concat "-" let (<<) f g x = f (g x) let f4 = String.concat "-" << List.map string_of_int << List.rev << List.sort compare let (>>) f g x = g (f x) let f5 = List.sort compare >> List.rev >> List.map string_of_int >> String.concat "-" let () = List.iter (fun f -> print_endline @@ f [1;1;9;2]) [f1;f2;f3;f4;f5] ↓ 9-2-1-1 9-2-1-1 9-2-1-1 9-2-1-1 9-2-1-1 http://mevius.5ch.net/test/read.cgi/tech/1628771431/346
897: デフォルトの名無しさん [sage] 2021/09/06(月) 17:16:24.38 ID:7r7RF488 >>893 そんなことはないですよ 例えば>>295のRubyとJavaScriptとPythonのプログラム例がある「数字のリストをソートして逆順にして文字列にしてハイフンで繋ぐ」プログラム これをRustで同じ方法で書いてみるとほぼ同じように書けます use itertools::Itertools; fn main() { let a = [4, 9, 3, 7, 1, 8, 5]; let s = a.iter().sorted().rev().map(|n| n.to_string()).join("-"); println!("{}", s); } 実行結果 9-8-7-5-4-3-1 このようにRustでもスクリプト言語並の平易さでプログラミングすることができます http://mevius.5ch.net/test/read.cgi/tech/1628771431/897
904: デフォルトの名無しさん [] 2021/09/06(月) 20:27:51.93 ID:q4rO2J8T >>900 イテレータ構文を気持ち悪いと感じるのはあなたが時代遅れのプログラマーだから 以前に>>295でJavaScriptやRubyの例が示されているようにRustに限らず様々な現代的なプログラミング言語でほぼ同じイテレータ構文となる http://mevius.5ch.net/test/read.cgi/tech/1628771431/904
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.037s