おまえらプログラマーならこんなコードも簡単に理解できるのか?

■ このスレッドは過去ログ倉庫に格納されています
1以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:14:12.112ID:dhpXTnV40
for (qw{[1] [2,3] [1,2,3] [1,3] [1,3,4,5]}) {
 @a = /(\d+)/g;
 %h = map{$_ => $_} @a;
 @b = map{$h{$_}//','} 1..1000;
 $"=','; $b = "@b";
 $b =~ s/^,*(.+?),*$/$1/;
 @c = split /,,+/, $b;
 @d = map{[eval]} @c;
 @e = map{@$_ > 2 ? "$$_[0]-$$_[-1]" : "@$_"} @d;
 print "@e\n";
}

2以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:14:49.479ID:EATF3edE0NIKU
あーなる

3以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:15:50.555ID:dhpXTnV40
どんな結果になるか想像できるのか?

4以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:16:28.743ID:BtFHx+uo0NIKU
コメント入れろ

5以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:16:58.415ID:CySbOdg60NIKU
あーこれな、最後凄いことになる

6以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:17:49.711ID:1XxPEZUFaNIKU
ぬるぽ

7以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:17:51.303ID:SbHUm2Kv0NIKU
すまんまったくわからん

8以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:18:02.879ID:hHNUpum70NIKU
配列の意味がわからん

9以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:18:34.232ID:Ed/lAdx9MNIKU
                 __     -‐====‐-
              r‐(⌒>''"              ` く⌒)  __
              / ゝ /                    \⌒)
             乂/  ./                     ヽ )   \
.         /      /  /  ⌒ /        ⌒ } |      V     ヽ
        /       / { / \{    / \  /\|      |
              ,      ,ィ≠ミx\,/  ,ィ≠=ミx,  |      |  |
.              ′ |  〃   ヾ    〃     ヾ,|      |  |        |
       |      |   |  ./(___ノヽ      /(___ノヽ   |      | 人         |
       |    /|   | ‖/////,!   ‖//////l   |      |`ヽ ヽ       |
         jイ/   |   | l/{///,人l     l/{///,人'l   |      |  }   \   |
               |   _j  ゞ `¨´ ノ 、    ゞ `¨´ .ノ  |      |_ノ     \r‐
                  込       (_人_)          |     /
               ヽ 个s。.      乂ノ          イ|   /
                  \.  | ,ィ:: :ー---------―<:: / |
                \! , ーァつ l_____とr‐<:::::: / |/
                /  | 三j::::|  r三` ヽ´    \
                     xく  ⌒):: |/ Y    }
              ,  /\:`ー‐ァ/ イ 人_____ノ}__  __  }
                {     `ーr' {  | {:::::::::::::/  `く    }
                {      /   {  |」{ ̄ ̄       /
                 乂____/    L | \        ./

10以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:19:42.767ID:Ap5xlAt6rNIKU
あーそういうことね完全に理解した

11以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:20:21.327ID:XUR8eSx30NIKU
日本語でおk

12以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:24:12.677ID:/ZvZBAGZ0NIKU
実行するなよ?

13以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:25:42.673ID:Gnx9oiQW0
コピペしか出来ないバカには実行すらできないコード

14そっくん ◆SokkunHeX. 2020/03/29(日) 18:35:15.949ID:xLiHG6f9aNIKU?PLT(20203)

15以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:38:19.413ID:nYRAHSKy0NIKU
ぜんぜんわからない
どうなるのこれ

16以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:38:24.009ID:TF78J+0L0NIKU
perlじゃん

17sage2020/03/29(日) 18:44:00.233ID:9Ek1LWA20NIKU
Class Vipper
{
public void TwoChan()
{
Console.WriteLine("1はハゲ");
}
}

18以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 18:51:55.336ID:dhpXTnV40
らしい


@a = /(\d+)/g; … 文字列から数値だけを抽出しリスト変数@aに格納、たとえば文字列が"[1,3,4,5]" の場合@aは(1, 3, 4, 5)

%h = map{$_ => $_} @a; … 変数@aのリスト例えば(1, 3, 4, 5)を入力として値対値ハッシュ {1=>1, 3=>3, 4=>4, 5=>5}を作り変数%hとする

@b = map{$h{$_}//','} 1..1000; … 1〜1000までの数値に対しハッシュ%hを参照し値があればその値、無ければ','文字のリストを生成して変数@bに格納、上記{1=>1, 3=>3, 4=>4, 5=>5}の場合はこんな感じ
#  1 2 3 4 5 6 7 8 9 … 1000
@b: 1 , 3 4 5 , , , , … ,

$"=','; $b = "@b"; … 上記リスト@bを元に要素を区切り文字','で繋いだ文字列を作り変数$bに設定
上記@b: 1 , 3 4 5 , , , … ,
の場合 $b = "1,,,3,4,5,,,,,,,…,,"
2や6以降は無いので,となっている

$b =~ s/^,*(.+?),*$/$1/; … 文字列$bの先頭と末尾に','があれば除去
例 $b = "1,,,3,4,5,,,,,,,…,," ⇒ "1,,,3,4,5"

@c = split /,,+/, $b; … $bを正規表現/,,+/を区切りとして分割したリストを@cに格納
例 $b = "1,,,3,4,5" ⇒ @c = ("1", "3,4,5")

@d = map{[eval]} @c; … リスト@cの文字列をそれぞれevalして数値リストのreferenceの配列を@dに設定
例 @c = ("1", "3,4,5") ⇒ @d = ([1], [3, 4, 5])

@e = map{@$_ > 2 ? "$$_[0]-$$_[-1]" : "@$_"} @d;
@dの夫々の数値リストに対し、要素が1だったらその数値自体を文字列に、2個だったら数値を','で連結した文字列に、
3個以上だったら"最初の数値-最後の数値"という文字列に変換
例 @d = ([1], [3, 4, 5]) ⇒ @e = ("1", "3-5")

print "@e\n";
@e の文字列リストを','で繋いで印字(上の方で区切り文字$"は=','に設定済)
例 @e = ("1", "3-5") ⇒ 1,3-5

19以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 19:05:50.622ID:TGZPHLXu0NIKU
$だの@だの無理
Pythonで書き直して

20以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 19:07:00.083ID:473hX9Wt0NIKU
正規表現を理解しよう

21以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 19:14:32.133ID:/ZvZBAGZ0NIKU
perl なの?
perlなら魔法の正規表現で 1行20文字くらいで定義できそう

22以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 19:15:38.807ID:VJmq5dR50NIKU
>>18
声ちっさ

23以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 19:17:14.719ID:4L0qIU0/0NIKU
perlは書いた本人ですら分からなくなるからな

24以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 19:18:11.601ID:jfLs1KUw0NIKU
機械語で書いてくれ

25以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 19:20:21.546ID:asBVFxtk0NIKU
これがperlなのか
なんとなく正規表現で文字分割してるんだろうくらいの印象だった
mapってなんだ

26以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 19:29:19.102ID:/ZvZBAGZ0NIKU
mapはあらゆる言語にある基本だろ

27以下、5ちゃんねるからVIPがお送りします2020/03/29(日) 19:38:58.859ID:kJF4BrIN0NIKU
GOTO "Hello,Work!!";

■ このスレッドは過去ログ倉庫に格納されています