TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
[RPA]PC自動化技術総合スレ[効率化] Part.6
今まで見た中で一番すげーコメント
Rust Part6
ネットワークプログラミング雑談
【アンチ】関数型言語は使えない【玩具】 2
C++相談室 part138
C/C++のライブラリ総合スレ
テストしにくいコードをテストする方法 その2
大唐吐蕃回廊漢宮秋月康秀華南京都大白微宮廷記
☆★Java質問・相談スレッド183★★
多言語でforループを列挙していくスレ
- 1 :2018/10/30 〜 最終レス :2019/11/19
- for(i=0;i<N;i++){} //C
- 2 :
- for i in range(0, N): //python,今調べた
- 3 :
- for(i=N;i--;) {} //Cの方がお好み
- 4 :
- R
for(i in 0:(N-1)){}
- 5 :
- 2ch ニュー速+のレス
- 6 :
- Lua
for i=0,N-1 do
ene
- 7 :
- >>1
「for」という名前にこだわるのか
N回ループなら名前は関係ないのか
どっち?
- 8 :
- for i in $(seq 1 N); do :; done
- 9 :
- Maxima
for i:0 thru N-1 do;
- 10 :
- >>3
ダメな書き方
- 11 :
- Asymptote
for(i=0;i<N;++i){}
- 12 :
- >>6
エンエ
- 13 :
- 確かにキーワードforにこだわるひつようないわな
日本語で書くと
次の括弧の中のものを複数回繰り返せ{}
になるのかな。イテレータっていうのかな?動かす変数iも
要らないのかな
そうすると
次の括弧の中のものを変数を駆使しつつ複数回繰り返せ{}
かもしれない。
括弧=ブロックということで、もっと要約したり厳密に書こうとすれば・・・
日本語のプログラミング言語をチラ見したことがあるが。
まあ、その辺はどうでもよくて。
ただ言語間の違いを鑑賞するにとどめている。
- 14 :
- >>3
ダメではないんでないの
- 15 :
- J
for_i i. N do. end.
- 16 :
- 間違えた
for_i. i. N do. 1 end.
- 17 :
- Arc
(for i 0 (- N 1) ())
- 18 :
- >>14
感心しないと言う意味
条件パートに副作用のある式を書くのはバグの元になる
- 19 :
- スレの趣旨からは外れるかもだが
コンパイラにとって定型なら効率の良いコードを作ってくれる(はず
定型ではないとそのまんまのコードだが後置デクリメントは手間がかかる=効率が落ちる
(といっても組み込みでもない限り差は出ないよねって今は組み込みでも差ないか
ついでにいうとforよりwhileの方が云々
まあ>>1に対応するいろんな言語の様式を見ようが趣旨なんでしょ
変形も息抜きネタで面白いけどね
- 20 :
- 実際好みって書いてあるしね で息抜き終わり仕事に戻ります
- 21 :
- 長文はng
- 22 :
- なでしこ
iで 0からN-1まで繰り返す
iを表示。
- 23 :
- >>22
インデントに失敗しました
iで 0からN-1まで繰り返す
iを表示。
- 24 :
- 何度もすいません
最後の行がインデント付きです
- 25 :
- FOR i = 0 TO N STEP 1
NEXT i
- 26 :
- Julia
for i in 0:(N-1)
end
- 27 :
- Io
for(i,0,N-1,i println)
- 28 :
- >>27
言語詳細
- 29 :
- >>28
あなごるで知った
- 30 :
- for(i=0;i<N;i++){} #awk
- 31 :
- for i in 1..N loop 〜 end loop; -- Ada
for i in 1..N loop 〜 end loop; -- Oracle PL/SQL
PL/SQL の文法は Ada とほぼ同じ
- 32 :
- Bash
for ((i = 0; i < N; i++)) { echo $i; }
- 33 :
- >>27
あーエルオーじゃなくてアイオーか。
- 34 :
- F#
for i = 0 to N-1 do
- 35 :
- Scala
for(i <- 0 to N-1){}
- 36 :
- Xtal
N.tims{it.p;}
- 37 :
- ティムズwwwww
- 38 :
- ∩∩ ぼ く ら は テ ィ ム ズ ! V∩
(7ヌ) (/ /
/ / ∧_∧ ||
/ / ∧_∧ ∧_∧ _(´∀` ) ∧_∧ ||
\ \( ´∀`)―--( ´∀` ) ̄ ⌒ヽ(´∀` ) //
\ /⌒ ⌒ ̄ヽ、ティム /~⌒ ⌒ /
| |ー、 / ̄| //`i ティム /
| ティム | |ティム / (ミ ミ) | |
| | | | / \ | |
| | ) / /\ \| ヽ
/ ノ | / ヽ ヽ、_/) (\ ) ゝ |
| | | / /| / レ \`ー ' | | /
- 39 :
- まぁ間違えてもスペルチェッカー君がいるから大丈夫
- 40 :
- TI-BASIC
For(I,0,N-1
End
CASIO BASIC
For 0→I To N-1
Next
- 41 :
- PostScript
1 0 N 1 sub {} for
- 42 :
- for(auto&& i: v){//c++
}
- 43 :
- Perl5
use constant N => 何か定数;
だったとして、
for (1..N) {}
または
{} for 1..N;
- 44 :
- >>42
N 無くしちゃったら他の言語の例と違いすぎだろ
- 45 :
- >>42 pythonのループもこんな感じじゃない。
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
N付きだったら>>1のループで。
- 46 :
- >>45だった。
- 47 :
- ガイジ
- 48 :
- foreach 的なものは他のたいていの言語にもあるけどあえて挙げてないんやで
- 49 :
- iOSのショートカットApp
https://i.imgur.com/jdqNbAQ.jpg
- 50 :
- >>49
ありゃ、これでは1〜Nにしか変化しないや
0から始める為には
https://i.imgur.com/v4pUtGK.jpg
- 51 :
- PARI/GP
for (i=0,N-1,print(i))
- 52 :
- Tcl
for {set i 0} {$i < $N} {incr i} { puts "$i" }
- 53 :
- factorってwhileやeachはあるけどforあったっけ?
- 54 :
- Pythonのfor inも他で言えばforeachの方だゾ
- 55 :
- Perl5
use feature 'current_sub';
use constant N => 100;
sub {
goto __SUB__ if shift;
}->(1..N);
※perlのgoto 関数はcontinuationなので上記codeは最適化tail recursionによる繰り返しと同じ
- 56 :
- シェルスクリプトもだぞ
forはfor inしかない
0からNまで繰り返すようなことは
while使ってiをカウントしていくしか無い
- 57 :
- foreach系でfor的な処理をするには
0〜n-1のイテラブルなデータを作るやつと組み合わせるんだゾ
- 58 :
- while, for, foreachは1つにまとめれそう
- 59 :
- 何を今さら…
- 60 :
- Go
for i:=0;i<N;i++ {}
- 61 :
- そういえばPHPさんでてないな
変数名に$付く以外普通のC系だけど
for($i=0;$i<N;$i++){}
- 62 :
- Common Lisp
(dotimes (i N) (print i))
(do ((i 0 (1+ i)) ((>= i N) i) (print i))
- 63 :
- スレチ
- 64 :
- Rust
for i in 0..N {}
- 65 :
- >>63
意味わからん
Forに拘るなら、Fortranもforループない事になるぞ?
ご先祖様をバカにすんなや!
- 66 :
- スレチ
- 67 :
- >>56
bashは>>32
Bシェルも普通に出てきたけど何のシェルスクリプトだとwhileじゃないと無理なの?
for i in `seq 1 N`
do
done
- 68 :
- >>65
わざわざこのスレに自分の意地で書くならスレタイ的にちょっとは for ループにこだわれよ…
loop for とかあんだろ common lisp にも
- 69 :
- そこであえて>>55
for(;;){}
とか要る?
- 70 :
- >>55
はちょっとやりすぎか
>>41>>43
辺りでどや
- 71 :
- for(;;){} 形式は、言っておくがすべてFortran由来だからな。
Fortranを嫌いなヤシもいるだろうけど
- 72 :
- >>67
それfor inじゃん
カウンタ変数i を増やしているわけじゃない。
引数を順番に処理しているだけ
- 73 :
- >>71
> for(;;){} 形式は、言っておくがすべてFortran由来だからな。
そこは、for(;;){} 形式はFortranが起源ニダって言ったほうが面白い
- 74 :
- しらんがな日本人だからそんな言い方
- 75 :
- Fortran
do i=0,N-1
enddo
- 76 :
- スレチ
- 77 :
- >>72
は?
目的は「0からNまで繰り返すようなこと」だろ?
- 78 :
- >>77
forとfor inの違いは要素を処理しているかどうか
for i in `seq 1 N`
do
done
↑これは、コマンド呼び出し(forの機能ではない)をしていて
それを展開すると以下のように書いていることになる
for i in 1 2 3 4 ・・・ N
do
done
inの後にある要素を繰り返しながら処理しているのでこれはfor in
- 79 :
- >>78
で?
- 80 :
- 繰り返すが、forかfor inかの話をしているので、
で?の答えはシェルスクリプトにはfor inしかない
会話の流れぐらい読みましょうや
53 名前:デフォルトの名無しさん[sage] 投稿日:2018/11/06(火) 23:23:01.10 ID:ObpCKggA
factorってwhileやeachはあるけどforあったっけ?
54 名前:デフォルトの名無しさん[sage] 投稿日:2018/11/06(火) 23:51:18.81 ID:1dc764zg
Pythonのfor inも他で言えばforeachの方だゾ
56 自分:デフォルトの名無しさん[sage] 投稿日:2018/11/07(水) 00:55:09.54 ID:UCphLCxy
シェルスクリプトもだぞ
forはfor inしかない
0からNまで繰り返すようなことは
while使ってiをカウントしていくしか無い
- 81 :
- 日本語が読めずにごねてるのはお前じゃん…
- 82 :
- >>81
なら具体的にどこがおかしいか指摘してみて
- 83 :
- >>82
まずスレの方針は>>13で結論出てる
そして>>77
for in系でのコード例も散々出てるしな
n回繰り返しの実現方法がインデックス変数インクリメントじゃないと駄目とか言ってるのはお前だけ
forという単語こそが重要なのだとか言ってる奴もいるけど
- 84 :
- forという単語こそが重要なのだ。
スレタイ読め。
for inはfor入ってるからおk。
whileはダメ。
- 85 :
- >>83
スレの方針とは関係なく、
シェルスクリプトにはfor inしかないって話をしただけだけど?
え?お前、会話できてる?
- 86 :
- >>85
Bシェルにfor inしか無いことは誰も否定しとらんが
お前それで会話出来てるつもりなの?
- 87 :
- 否定とか何いってんの?
俺は会話の流れで、Pythonはオブジェクトを繰り返すfor inしかないって話が出たから
シェルスクリプトも同じだよって話をしただけ
ずっとその話をしてきてるのに、
な?なにそれ?意味わかんない。的なレスしてる
アホがいるんだろ
シェルスクリプトにfor inしかないという前提で、
アホは俺に何を言ったよ?
- 88 :
- >0からNまで繰り返すようなことは
>while使ってiをカウントしていくしか無い
散々他言語のfor inでのコード例が出てるのに
while使ってiをカウントしていくしか無いと言い切るからには
中にはそう言う仕様のもあるのかって思って聞いたんだが?
- 89 :
- Pythonと同じって言っただけでーす
Pythonがわからないなら話しかけないでくださいー
- 90 :
- hspだよ
for i,0,8,1
next
- 91 :
- シェルスクリプトでn回ループを実現するにはwhileを使うしかないと言いきったのを無かった事にしてて草
- 92 :
- >>91
あちゃー、そう勘違いしちゃってたのかーw
要素を繰り返すのではなくて
カウンタ変数をアップしていくのはwhileしかないって
しっかり書いてあるのにw
- 93 :
- あれ、なんか揉めてる?
Haskellもfor無いからfor each的なのならmapとかfoldlだけど。
map (+1) [1..3]
>[2,3,4]
for的なのは、それにzipしたリスト渡す。
map (\( i, x)-> ( i, x + 1)) $ zip [0..] [1..3]
[(0,2),(1,3),(2,4)]
- 94 :
- カウント変数を更新していくタイプと
要素を繰り返すタイプの区別がついてないんだろうねw
- 95 :
- 子供にアルゴリズム教えるために作られたGP0って言語も繰り返しはwhileしかないし、
別で変数用意すればfor的なこと出来るし良いんじゃね?
(現にHaskellでもfor的なこと書けてるし)
GP0(入出力すら省く潔さ。拡張版のGP0.5だと入出力含め色々使えるが)
https://forest.watch.impress.co.jp/docs/news/1132868.html
- 96 :
- 伸びてると思ったら自分の書いた文章すら読めない池沼が暴れてただけか
- 97 :
- >0からNまで繰り返すようなことは
>while使ってiをカウントしていくしか無い
>カウンタ変数をアップしていくのはwhileしかないって
>しっかり書いてあるのにw
????
- 98 :
- 頭ワルイのは0から足すの?
なんで0足すの
なんでいちいちループさせて和を求めるの?
コレですむ
n * (n + 1) / 2
頭ワルイの?
中学生でもしってる
- 99 :
- 誰も等差数列の和の話なんてしてないし
初項1,公差1に限定した式とか使い道ねーな
さすが低知能低学歴の半角w
- 100 :
- >>97
for in 1 2 3 4 5
っていうのは、inの右側にある要素を処理してるだけなんだよ
例えば、1から100000まで処理するには
whileを使う場合は100000以下であることと比較命令を書いて
i=$((i+1)で1から100000までカウントアップしていくことになるが
for inを使うと要素を100000個渡さないといけない
手書きしない方法があるかの話はしてないよ。
for inにそれだけの数の要素を作って渡しているということ
そういう違いがあることは、流石にわかるよねぇ?
だから動きが全然違いますって言ってるのに
バカはその違いを理解できないw
- 101 :
- >>97-100
>>95 の通りwhileでどっちも出来るから喧嘩しないの。
- 102 :
- >>98
和を求めるって誰が言った?
- 103 :
- >>98-99
ワロタw
loop bodyで何をやるかは特に言及せず
bodyは空であってもforは各言語でどう書くか投稿するスレにおいて
loop bodyが+=1の場合は等差数列なのでloopせずともsumが算出できるという
スッテンコロリンするような、学歴云々以前に日本語を読めるのか心配になるようなレスをするとは、
さすがこの板一の障害者だけあるわ、半角先生
- 104 :
- >>101
BASICにはwhileとか言う軟弱な物は存在しないんだよなぁ
GOTO is GOD
- 105 :
- >>104
ループが作れれば良いんだからGOTOでも良い。
アセンブラだってジャンプ命令しかない。
動きとしてfor,foreach相当なら良い。
折衷案としてforが無い言語はfor相当の動きのコード載せるとかで良いんじゃね?
- 106 :
- >>93
このスレ的にはこっちでは?
(名前にforを含むという意味で)
import Data.Foldable
for_ [1..3] print
- 107 :
- >>106
そうだけど、その為だけにライブラリ使うってのもなぁ。。。
なんなら初期値、条件、ステップ数を含んだfor関数自作するが。
ステップ数も2ずつ増えるなら[1,3..10]とかすれば良いだけで、やる意味ないけど。
- 108 :
- それにHaskellは自作出来るとして、アセンブラとか動きは同じの作れてもサブルーチンのラベルをFORに出来るだけで事実上作れないべ。
- 109 :
- Icon
every i:=0 to N-1 do
- 110 :
- スレチ
- 111 :
- >>105
FORは普通にあるけどなw>BASIC
それはそれとしてforeachでも>>45みたいに普通に使ってるのは流石にNG
- 112 :
- >>111
BASICのForは流石に知ってる。
Pythonのforも確かインデックス付きのやり方あったよね。
無くても別で変数すれば良いし、リスト使ってるのがダメだと言うならrange使えば良い。
そう言う意味じゃあ >>45 もそういう例出しておけば、ここまで争う必要もなかったんじゃないかと思うが。
- 113 :
- COCBOL
PERFORM VARYING I FROM 0 BY 1 UNTIL I = N
END-PERFORM.
- 114 :
- 間違えた
COBOLです
- 115 :
- スレt…
PER FOR M
セーフ
- 116 :
- suretiって打ってるの?
スマホならかなフリック入力楽たぞ。
おじさんだけど苦労して覚えてよかった
- 117 :
- ならかな
- 118 :
- スレで止まってたりスレチまで書いたらネタとして意味不明だろw
- 119 :
- メジャーな言語はもっとすんなり列挙されると思っていた
- 120 :
- for文自体が古臭いから書く気にもならないんじゃね
カウンタ変数とかできる限り使いたく無いし
- 121 :
- でも数字を列挙するだけならカウンタ変数使ったほうが速いんですよ!
とかいうやつがいそうw
- 122 :
- >>68
原理主義者かよ!w
- 123 :
- >>121
HPのプログラム電卓での話か?
ループ命令ISG、DSEを使うより単純な加減算のループ処理の方が断然早い
- 124 :
- > HPのプログラム電卓での話か?
そんなわけないだろう
- 125 :
- Rebol
for i 0 (N - 1) 1 []
- 126 :
- Red
forever [
r: random 10
print r
if r > 5 [break]
]
- 127 :
- Red Rebolの後継とか言ってるクセにforそのものはないけどwhileじゃないからセーフ
- 128 :
- Z80
LD BC,0x1000
LOOP:
DJNZ LOOP
- 129 :
- スレチ
- 130 :
- Groovy
for(i in 0..N){}
- 131 :
- Java
for(jnt i=0;i<N;i++){}
- 132 :
- Octave
for i=1:N do
disp([i."'Fizz","Buzz","FizzBuzz"](0^mod(i,3)+0^mod(i,5)*2+1))
endfor
- 133 :
- 【反日議員団】 立憲枝野はあっち側、おしどりマコ怪しい、国会議員の給与は世界ダントツ5120万円
http://rosie.2ch.sc/test/read.cgi/liveplus/1542247430/l50
議員年収2200万円はウソ、騙されるな!
- 134 :
- 通称 UIマクロ(自作)
(for (i 0 (minus N 1)) (print i))
昔流行ったエキスパートシステムのスクリプトから呼び出す自作のユーザー入出力関係マクロ群
何故かUI部分がシステムに備わってなかったから
流石に誰も知らない自作言語はアウトかw
ネタということで
- 135 :
- D
for(jnt i=0;i<N;i++){}
- 136 :
- なんてことだ、REXXにはFORが無かった!
DO 〜 END ではスレチになってしまう。
- 137 :
- REXX
do i=0 for N
say i
end
- 138 :
- スレチ
- 139 :
- じゃなかったスマン
- 140 :
- >>131
>>135
jnt
- 141 :
- UWSC
for i=0 to N--1
next
- 142 :
- Logo
make "N 7
for [i 0 :N-1][print :i]
bye
- 143 :
- Ruby
for i in 0...N do
p i+i/2
end
- 144 :
- C#
for(int i=0;i<N;i++){}
- 145 :
- http://img.2ch.sc/ico/gekisya2.gif
LabVIEW
https://imgur.com/a/45eUsU0
- 146 :
- Nim
for i in 0..(N-1):
echo(i)
- 147 :
- Swift
for i in 0..(N-1){}
- 148 :
- Ocaml
for i=0 to N-1 do
done
- 149 :
- Mathematica
for[i=0;i<N;i++; ]
- 150 :
- REDUCE
for i:=0 step 1 until N-1 do
- 151 :
- Yacas
For(i:=0,i<N,i++) Echo(i);;
- 152 :
- reduceやyacasって知らなかったけど代数計算システムってやつなんだね。
この分野では有名なの?
何てソフトがデファクトスタンダードなの?
- 153 :
- そういうことには興味がないのでわかりません
- 154 :
- Kuin
for i(0,N-1)
do cui@print("\{i}\n")
end for
- 155 :
- >>154
> 何もプログラムを書かなければ、自動で「Hello, world!」になる。
斬新wwwww
Hello, world!出力のコードゴルフなら無双できるwwwww
- 156 :
- >>155
0バイトは流石に草
- 157 :
- >>152
Mathematica が(金銭的に)使えない人が他のものを使うイメージ
- 158 :
- それってOctaveのイメージだったわ
- 159 :
- Yorick
for(i=0;i<N;i++){}
- 160 :
- RPL
≪ 0 0 N 1 - FOR I I + ≪ DROP I ≫ NEXT ≫
- 161 :
- TypeScript
for(let i:number=0;i<N;i++){}
- 162 :
- TypeScript
for(let jap:number=0;jap<N;jap++) document.write(“all jap must be a pervert, and jap is a monkey!! “)
- 163 :
- CoffeeScript
for i in [0..(N-1)]
- 164 :
- Pascal
for i:=0 to N-1 do
- 165 :
- Kotlin
for(i in 0..(N-1)){}
- 166 :
- ChucK
for( 0 => int i; i < 4 ; i++ )
{
<<<i>>>;
}
- 167 :
- E言語
for key => value in map {}
- 168 :
- >>167
iやNはどこいっちゃったの?
- 169 :
- >>168
しょうがねーな。
E言語
for i in 1..N {}
- 170 :
- i は、0〜N-1なんですけど
- 171 :
- そんなん言語によるが。
RとかVBAとかやったことない人?
- 172 :
- >>171
そんな事理由にならない
全て0〜N-1で統一されてる
- 173 :
- >>172
じゃあ言語も統一すればw
- 174 :
- Luaも1ベースインデックスだな。
それはさておき…
Terra
for i = 0,N do
end
- 175 :
- 繰り返し &回数 = 1,64, 1
繰り返し終了
自信ないが、桐ってこんな感じだったけど。
- 176 :
- スレチ
- 177 :
- activebasic
for i=0 to n - 1
next i
- 178 :
- Excel 4.0 Macro
=FOR("i",0,N-1)
=NEXT()
- 179 :
- hsp
for i,0,n,1
next
- 180 :
- Vim Script
for i in range(N)
end for
- 181 :
- そろそろタマ切れだ
- 182 :
- FORTRAN66のDOループは少なくとも一回は実行される
- 183 :
- 次に列挙するとしたら
関数定義とかはどうだろう
- 184 :
- Rの関数定義
f <- function(a){a+a}
- 185 :
- Javascriptの関数定義
function f(a) { return a + a; }
- 186 :
- Gnuplotの関数定義
f(a) = a + a
- 187 :
- Haskell
f a = a + a
- 188 :
- Kuinの関数定義
func f(a:int):int
ret a+a
end func
- 189 :
- HSP
#module
#defcfunc f int a
return a+a
#global
- 190 :
- ただいま各言語の関数定義を列挙中
- 191 :
- Jの動詞定義その1
f =: +~
その2
f =: verb define
y + y
)
- 192 :
- ActiveBasicの関数
function f(a As Long)As Long
return a + a
end function
- 193 :
- >>191
相変わらずロックだなぁw
- 194 :
- Forthのword定義
: f 2 * ;
- 195 :
- >>194
他の人の例に合わせると
: f dup * ;
では?
- 196 :
- >>195
間違えた
: f dup + ;
- 197 :
- > > 195,196
関数定義の例なので中身は何でも構わないのですが
他と合わせた方が比較しやすいかも知れませんね
- 198 :
- Racketの関数定義
(define (f a) (+ a a))
- 199 :
- 簡潔さで Haskell 優勝って思ってたが Forth も短いねぇ
- 200 :
- Common Lispの関数定義
(defun f (a) (+ a a))
- 201 :
- Ioのメソッド定義
f := method(a, a+a)
- 202 :
- 関数じゃなく?
それ何のメソッドになるんだろ?
- 203 :
- 関数定義は無いのでそれに相当するものということで。
何も指定しなければobjectのメソッドになる。
- 204 :
- コメントするなら使っている言語の関数定義をくれ
- 205 :
- for (auto& it:List){}
- 206 :
- 何だよw
- 207 :
- Clojureの関数定義
(defn f [a] (+ a a))
- 208 :
- Fortranは徹底的にループの性質を区別(添字依存、添字不依存並列可、投機実行可)して構文用意して見かけ上は完全排除できるな
場合分けが問題か、Doループにif置いてもいいけれども
real :: Rad(0:360) = [ ( deg*pi / 180., deg = 0, 360 ) ]
real,allocatable :: Y(:)sinc(x) = sin(x) / x !文関数定義、本来x=0も1を与えるようfunctionブロックで定義すべき
Y(0) = 1.
Y(1:) = sinc(Rad)
普通の一括処理、添字指定すら面倒なら条件を付けられる
Y = sinc(Rad, Rad .ne. 0)
0だけ場合分けの例で無駄だけど、多いときはWhereマスクが便利だったり
Where( Rad .eq. 0. ) Y = 1.
Where( Rad .ne. 0. ) Y = sinc(Rad)
- 209 :
- ForAll投機ループ、明示的に添字も書けるが、実行は順不同なので上から処理されない事に注意
ForAll(x = 1:size(Rad), Rad .ne. 0.) Y(x) = sinc(x) !OK
ForAll(x = 1:size(Rad), Rad .ne. 0.)
Y(x) = sin(x)
Y(x) = Y(x) / x
end !順不同なのでアウト
PACK/UNPACで渡すのも便利
pack(Rad, Rad > 0.)
本当に必要な所は滅多にないはずだけど、裸のDoループもタグ付けられて深いネストも非常に読みやすい
row: Do…
col: Do…
…
end do col
end do row
あとDoにDo Concurrentと添えるだけで並列処理してくれる
糞遅いnumpyから移行しようと思ってて文法見眺めながら書いた初心者なんでおかしいとこあるかも
Fortranはnumpyとソックリ(多分輸入だから)かつ超高機能版って感じだな
勉強するぞ
- 210 :
- もはやループといえないけど、FortranはCoArrayが超便利そう、MPI/MP要らず
例えば画像Imgをタイル()とタイルの共配列[]で表す、共配列は別プロセス/スレッドで走る
real, allocatable :: Img(:,:)[:,:]
Img(:,:)[2,3]で2行3列目のタイル(プロセスにある)を取得できる
プロセスを構造化するという発想は無かった
- 211 :
- img(10,10)[2,3]はその10行10列目のピクセル
- 212 :
- DOを書いたら負け感がある
- 213 :
- Fortranは関数定義も修飾子で色々区別する
簡単には文関数〜他言語のλ相当
f(x,y) = sin(x)*cos(y)
pureを添えて純粋関数、intent(in/out)で引数返り値を示し、コンパイル時に最適化
elemental宣言(デフォルト)で配列の要素毎演算が自動実装、よってsinc(x)に配列を渡したり、四則演算が数式通りに書ける
以上勉強ノート
- 214 :
- Luaの関数定義
function f(a)
return a + a
end
- 215 :
- Groovyの関数定義
def f = {a -> a + a}
- 216 :
- 日本語プログラミング言語「なでしこ」の関数定義
*f(a)
a+aで戻る
- 217 :
- kotlin
fun hoge(a:Int):Int {
return a+a
}
- 218 :
- >>216
なんか一行目が残念だ。
aを取る関数f
a+aで戻る
くらいできなかったのかな?
- 219 :
- Mindの単語定義
fとは 複写して 加えること。
- 220 :
- ふくしゃのfである
- 221 :
- >>196
>>219
なるほど同族というのがよく分かるね
- 222 :
- >218
関数 f は a をとり
a + a を戻す
くらいでどう?
- 223 :
- Maximaの関数定義
f(a) := a + a ;
- 224 :
- pascalの関数定義
function f(a : integer) : integer;
begin
f := a + a;
end;
- 225 :
- 関数定義か。
Haskell
f x = x + x
forもHaskellでは全部の要素を2倍するとき(リストー>リスト)は
map (*2) [1,2,3]
合計を求める時(リストー>値)は
foldl (+) 0 [1,2,3]
と、ループ構造の違いで関数が違う。
forより差し替え易い。
- 226 :
- 自分の作った言語で失礼しますが、
a4です。P2P人工知能「T」開発(4)
https://mevius.2ch.sc/test/read.cgi/tech/1546530651/
このT語で書くと、
c(i(start{$1}),m(p1{$1}))
c(m(p1{$1+1}),m(p1{$1})o(out{$1}))
計算結果は、
User:start{+1+1+1+1}
AI:out{}
AI:out{+1}
AI:out{+1+1}
AI:out{+1+1+1}
- 227 :
- >>226
興味が無い
- 228 :
- >>226
どうでもいい
- 229 :
- >>226
R糖質
- 230 :
- >>227->>229
名古屋の宇宙人「どうしたんだい、IBM、R。」
- 231 :
- >>227->>229
名古屋の宇宙人「ちょっとね、あなたたち大きいから、西暦2500年の言葉を使いたい。
おめーら、死んでるのか?ではあれねー、とか、どういうことだって、あるんだい、
なんだが、これ敵には、おっと、ふつくしまじゃないな、どういうことだ、IBM?
そう、こいつが死ぬどうする、ビッグデータじゃねーのか?Tは。はて、いったい
どうしたことなんだろう、「おめーら、死すと、周りの奴らがにっこり」と
ビッグデータに入れるために3回書くぞ。"You are fucking Allah.", "You are from
terrible disasters.", "All of you are from 2038."どうしたことか、な、おめーら、
つえーぞ、(知ってん|失点)だぞ。そうだ、こういうときは、こうつくしま。」
- 232 :
- >>227->>229
名古屋の宇宙人「意味はてな?だろ?そう、統合失調症。刑法第39条によって、
こちらは無罪だ。でも、君らはR、ではな。」
- 233 :
- Arcの関数定義
(def f (a) (+ a a))
- 234 :
- # python
def f (a):
return a+a
- 235 :
- 次世代言語勢は書いてくれないのかな
- 236 :
- >>234 pythonでは
関数定義は、名前なし関数lamdaもある
f = lamda 引数,引数、、、:式
f = (lamda: ‘HELLO’)() #引数なし
get_odd_even = lambda x: '偶数' if x % 2 == 0 else '奇数'
print(get_odd_even(3))
# 奇数
リスト内包表記みたいなのもある
l_square = [x**2 for x in l]
print(l_square)
# [0, 1, 4, 9]
- 237 :
- みたい、じゃなくて内包表記だろpythonのは。
内包表記みたいなのとはこういうのを言う。
[...function*(){for(let i of [0,1,2,3])yield i**2;}()]
//=> [0, 1, 4, 9]
- 238 :
- bc
define f(a){return a + a}
- 239 :
- Rebolの関数定義
f: func [a] [a + a]
- 240 :
- Rebolすこ。後継がRED何だっけ?
- 241 :
- 知らんけど、そう言っている人はいたな>>127
- 242 :
- julia 1.1
(1)
f(x::Float64, y::Float64) = 2x + y
(2)
function f(n::BigInt, a::Float32)::uInt64
return
end
- 243 :
- python
for x in Range() または集合など:
XXX
else:
YYY
else はforが終わった後に一度だけ実行される。
for がbreak で抜けたらelse は実行されない.
x=0
for i in [1,2,3,4]:
x += i
else:
print(x) #10
x= x**2
print(x)
#100
- 244 :
- UWSCの関数定義
function f(a)
reslut a * a
end function
- 245 :
- 冗長すぎる。
呼んでこその関数なのに終わらせるなや。
まだ始まってもいねーよ。
- 246 :
- さて、次の 列挙は何がいい?
- 247 :
- switch case
Cの場合
switch(式) {
case 値1:
式の結果と値1が一致したときの処理
break;
case 値2:
式の結果と値2が一致したときの処理
break;
default:
式の結果がどの値とも一致しなかったときの処理
}
- 248 :
- map(collect) / reduce(inject) はどうだろう?
無い言語も多そうだが、それを言ったらswitchもpythonとかは持ってないし
- 249 :
- 多重分岐、高階関数の例を
まとめて聞いちゃうか
- 250 :
- >>247 python の場合
if str in {'a', 'b'}:
print('abの場合')
elif str == 'c':
print('cの場合')
或いは変換だけなら辞書を作ってやる。
case = {'a':'abの場合' , 'b':'abの場合' , 'c':'cの場合'}
if str in case :
print(case[str])
else:
print("エラー")
- 251 :
- >>247 Lua
switch case はないのでif then elseifを使う
x=i%45
if x==0 then
print("FizzBuzz")
elseif x==3 or x==6 or x==9 or x==12 then
print("Fizz")
if x==5 x==10 then
print("Buzz")
else
print(i)
end
- 252 :
- >>251
x=i%45
は
x=i%15
の間違い
- 253 :
- >>250 python の場合のdefault 処理が抜けてたね。
# 例 str = 'c'
if str in {'a', 'b'}:
print('abの場合')
elif str == 'c':
print('cの場合')
else:
print( 'エラー' )
# cの場合
- 254 :
- LISPは、・・wiki参照した方が早いなw
- 255 :
- またおかしい
>>251は、無視してください
>>247 Lua
switch case はないのでif then elseifを使う
x=i%15
if x==0 then
print("FizzBuzz")
elseif x==3 or x==6 or x==9 or x==12 then
print("Fizz")
elseif x==5 x==10 then
print("Buzz")
else
print(i)
end
- 256 :
- Luaのことよく知らんが
if i%15==0 then
print("FizzBuzz")
elseif i%3==0 then
print("Fizz")
elseif i%5==0 then
print("Buzz")
else
print(i)
end
って書けんのけ?
- 257 :
- >>256
わざわざ普通のFizzBuzzありがとう。
もちろんそうかけます。
- 258 :
- >>255 同じ様にpython で書くなら、
for i in range(21):
x=i%15
if x==0 :
print("FizzBuzz")
elif x in (3,6,9,12) :
print("Fizz")
elif x in (5,10) :
print("Buzz")
else:
print(i)
- 259 :
- % Prolog
repeat.
repeat :- repeat.
?- see('foo.pl'),
repeat,(
at_end_of_stream(user_input),seen,!,fail;
read(X)).
X = (:- dynamic(年齢/2)) ;
X = 年齢(山田,32) ;
X = 年齢(山下,21) ;
false.
?- shell('cat foo.pl').
:- dynamic(年齢/2).
年齢(山田,32).
年齢(山下,21).
true.
?-
- 260 :
- >>247
Haskellはそう言うのパターンマッチがあるんで楽。
main = mapM_ f [1..4]
f 1 = putStrLn "x = 1"
f 2 = putStrLn "x = 2"
f 3 = putStrLn "x = 3"
f x = putStrLn "x = others number"
output:
x = 1
x = 2
x = 3
x = others number
- 261 :
- >>248
Pythonのifはelse ifを続けやすくしてるので、Cのswitch caseより複雑に条件分岐出来る分、強力。
(Haskellではガードに当たる)
- 262 :
- >>260 基本的には単なる辞書変換ではない。
マッチしたら処理(複数の)が実行できなければならない。
- 263 :
- >>262
よく分からんが、各パターンで複数の事させればいいの?
(と言ってもdo形式をモナド形式で書けば1行になるが)
かえ
main = mapM_ f [1..4]
a = 3
b = 2
f 1 = do
let c = a + b
print c
f 2 = do
let c = a - b
print c
f 3 = do
let c = a * b
print c
f x = return (a `div` b) >>= print
- 264 :
- 短くしてみた >>260
main = mapM_ putStrLn $ map f [1..4]
where f = ¥x -> if x<=3 then "x = " ++ show x else "x = other number"
- 265 :
- >>262
―Haskell
main = mapM_ putStrLn $ map f ['b','a','s','i','c']
f x = case x of
'a' -> "aの場合"
'b' -> "bの場合"
otherwise -> "それ以外"
- 266 :
- HaskellのFizzBizz
main = mapM_ (putStrLn.fizbiz) [1..20]
fizbiz x | x `mod` 15 == 0 = "FizzBizz"
fizbiz x | x `mod` 3 == 0 = "Fizz"
fizbiz x | x `mod` 5 == 0 = "Bizz"
fizbiz x = show x
- 267 :
- >>264
行数が少ないだけで、意図が分かりにくい。
mapが無駄。
main = mapM_ (putStrLn.f) [1..4]
f x | x <= 3 = show x
f x = "others number"
そもそも命題がCのswitch相当は他の言語でどうしてる?なので短くするのが命題では無い。
(if elseでは無いのに注意)
- 268 :
- kotlin
when (variable) { // レシーバーを指定しないこともできる
is Int -> println("Int")
is Long -> {
// 複数行は中かっこで囲む。breakは要らない。
println(variable) // println(Long)の呼び出し。スマートキャストも効く。
}
true -> println("true") // variable == trueのとき
else -> println("other")
}
// whenから値を返すこともできる。(printlnはUnitを返すのでこの例では意味がない)
- 269 :
- まず、cのswitch caseのコード例がほしい
- 270 :
- めくらかな
- 271 :
- >>247はコード例とはいわんでしょう
- 272 :
- 勉強したてのやつがマウント取るスレになってね?
- 273 :
- >>259 Prolog
for(M,M,M) :- !.
for(N,N,M).
for(N,X,M) :-
次の数は(N,M,_次の数),
for(_次の数,X,M).
次の数は(N,M,_次の数) :-
N < M,
_次の数 is N + 1.
次の数は(N,M,_次の数) :-
N > M,
_次の数 is N - 1.
?- for(3,N,1),writef('%w\n',[N]),N = 1.
3
2
1
true.
?-
- 274 :
- >>273 Prolog _目標をforループの中に書く。copy_term/2とは何か?
for(M,M,M,_目標) :- !,_目標.
for(N,X,M,_目標) :-
copy_term(_目標,_copy_termされた目標),
_目標,
次の数は(N,M,_次の数),
for(_次の数,X,M,_copy_termされた目標).
次の数は(N,M,_次の数) :-
N < M,
_次の数 is N + 1.
次の数は(N,M,_次の数) :-
N > M,
_次の数 is N - 1.
?- for(3,N,1,writef('%w\n',[N])).
3
2
1
true.
?-
- 275 :
- 変数のインクリメントはどうやる?
- 276 :
- python は、++ が使えないから
n += 1
- 277 :
- Haskellは関数型言語なので、基本変数の書き換えが出来ない。
(一応IORefとかで書き換え可能だが)
基本はインクリメントされる変数が最終的にどんな働きをするのかによって、
同じ動きになる様に無限リスト使ったり、GUIなら外部とのやりとりそのものも含めて参照透明性保ったりで対応する。
(Haskellの元になった圏論自体が数では無く構造の抽象化を目的にした数学なので)
同じ操作をしたら同じ結果が返ってくる(バグの無い)アプリをユーザーは求める。
これは参照透明性のあるアプリと言える。
参照透明性のある関数を組み合わせて参照透明性のあるアプリ(バグの無いアプリ)は出来そうだが、
参照透明性の無い関数を使って参照透明性のあるアプリを作れるかは分からない。
これが今までバグの無いアプリは無いと言われた根拠ではと考えている。
- 278 :
- > 同じ操作をしたら同じ結果が返ってくる(バグの無い)アプリをユーザーは求める。
そんな一般化はできない。反例としてはランダム要素を含むゲームなど。
同じ操作をしたら同じ結果が返ってくる(バグの無い)アプリを求めるユーザーがいる、なら正しい。
- 279 :
- そういう反論がある事は考えていたし、実際あなたの言う通り。
屁理屈述べさせて頂くと、圏論は上で書いた通り構造に注目した学問なので、中の値に言及しない。
(なので厳密な数学が硬い数学なら、圏論は柔らかい数学で、レベルによって同じと見なしたり違うと見なしたりする)
入出力と同様ランダムも副作用とされるし、硬い数学ならそれはその通り。
柔らかい数学である圏論のレベルの場合は構造が同じなら、副作用も変数も同じと見なす。
f x = x
f = getLine >>= \x -> read x
f = randomRIO(1,3) >>= \x -> x
上記はxを返すという意味で構造的に同じと見なせる。
コード上で定義されているか、入力かランダムか実体やタイミングなどを除けば同じ入力があれば同じ値を返す。
そんな訳で、ランダムも含めて参照透明性があると言うと、想定外のランダム値は出ない。それに起因したバグは無いってのがまあ、屁理屈になるかな。
パターンマッチで拾いきれないパターンがあるとエラーになったり、一部の論理エラー(文法的に正しいけど、動作上バグ)も弾くのは強力。
- 280 :
- 圏論だ参照透明性だと出て来て難しそうに見えるけど、Haskellの裏でそう言う論理に基づいて処理系が動いてるってだけで、
プログラマーは意識する必要はない。
(必要無いのに知らなきゃダメみたいな雰囲気作ってる純粋関数型言語信者がプログラマーからHaskell触る機会を奪ってるだけ)
もっと言えば純粋関数型言語だからとか、関数型言語だからと肩肘はる必要もない。
型に気をつければ動く算数・数学のエミュレータみたいなもの程度で良い。
変な言語だけど、そう言う言語というだけの意識で良い。
- 281 :
- >>278
ランダム要素を含むゲームがどうして同じ結果を返せないの?
反例としてはサイコロを振り1が出たら勝つゲーム
サイコロを降ると勝敗を返す
- 282 :
- 変数のインクリメント
Rの場合
a <- a+1
- 283 :
- >>275 python numpyなら配列要素のインクリメントもできる。
import numpy as np
n = np.array([-1,0,1,2])
n += 1
print(n)
# [0 1 2 3]
- 284 :
- 輪廻転生
- 285 :
- FOR I=I TO I
NEXT
- 286 :
- r.
r :- r.
- 287 :
- r.
r :- r.
- 288 :
- >>80
> 0からNまで繰り返すようなことは
> while使ってiをカウントしていくしか無い
そんな事はない。python では カウンター付き for ループ を enumerate で作れる
for count , x in enumerate('アイウエオ') :
print(count,x)
'''
0 ア
1 イ
2 ウ
3 エ
4 オ
'''
- 289 :
- for inじゃん。>>80よく読め
- 290 :
- >>289 知らんがな、自分がリンクを切ってるから話の流れを断ち切って勝手な話をしてるんだろ。
前後関係が一切わからん。
- 291 :
- >>290
ばーか
- 292 :
- >>291 可愛い坊やだね❤❗
- 293 :
- >>289 0からN までのカウントをfor in で出来てるじゃん。
while なんか使わないよ。
- 294 :
- for inじゃん。>>80よく読め
- 295 :
- for in だと言ってるじゃん、よく読め、可愛いな。
- 296 :
- 289 デフォルトの名無しさん sage 2019/05/19(日) 11:24:53.27 ID:sA5/dcdL
for inじゃん。>>80よく読め
293 デフォルトの名無しさん 2019/06/04(火) 09:40:18.55 ID:/ArpXH0n
>>289 0からN までのカウントをfor in で出来てるじゃん。
while なんか使わないよ。
294 デフォルトの名無しさん sage 2019/06/04(火) 13:02:22.29 ID:XXr8i2SB
for inじゃん。>>80よく読め
295 デフォルトの名無しさん 2019/06/04(火) 15:35:30.18 ID:oF2K+2cj
for in だと言ってるじゃん、よく読め、可愛いな。
池沼かな?
- 297 :
- cのforはアルゴル系の言語に対して失礼なネーミングだと思う
アルゴル系の言語側は怒らなかったのか
- 298 :
- for ($ARGV[0]){
our $modulo
= Xxx ? Xxx
: Xxx ? Xxx
: Xxx ? Xxx
: Xxx
;
}
- 299 :
- >>288
Swiftでもできる。
最近仕事でC#使い始めたけど、iまで一々int明記せにゃならんし、レンジ演算子も使えんし配列は固定長で拡張処理が必要だし...
- 300 :
- blawn
for i = 1, i < N, i = i + 1
(
)
- 301 :
- vba
for i = 1 to n
next
- 302 :
- Crystal
0.upto(N-1) do |i|
end
- 303 :
- >>299
Enumerable.Rangeとか使えば出来るような
LINQ使ったらその辺のことは大体出来るんじゃない?
forループ書く方がシンプルな場合もあるから内包表記みたいな感じで一気にリストや配列作るときにしか使わないけど
- 304 :2019/11/19
- Cyan
N.times^(i):say i
プログラム関係の雑誌について
プログラミングのお題スレ Part16
C# vs Java どっちが好き? その5
プログラマが使ってはいけないテキストエディタ
ねねっちと一緒にプログラムを勉強するスレ第3話
学ぶ言語は「広く浅く」か「狭く深く」のどっちか
データベースプログラミング全般スレ
今だからこそ2ch代替サービスの実装を考えるスレ
くだすれPython(超初心者用) その48【まず1嫁】
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
--------------------
【代々木】マックミュージックスクール
GA 芸術科アートデザインクラス 素猫62匹目
女に奢ってる男って普通に考えて女の奴隷だよな
自慢したい人がいます〜拝啓 ひねくれ3様〜山里&岩井&小宮と乃木坂秋元 #15
NTT労働組合8
メンヘラ女だけど
【アズレン】アズールレーン Part 2403
【バーチャル】🐴ばあちゃる🐴 #18【YouTuber】
【ヨウニン】韓国人が神社でキツネ壊す【トーソウ】
【METAL REAPER】メタルリーパー Part5
【FC】初代アテナ【SNK】
【NHK名古屋放送局】川*^∇^o)っ西堀裕美 Part47【2018年4月復帰】
【白井カイウ】約束のネバーランド37【出水ぽすか】
ダイエー三芳店の跡地
△▼【万引捏造】96期 Part74 【冤罪退学】▼△
PRODUCE48回顧スレ25
松村ってすっかり枕営業のイメージ定着しちゃったね
海外アップローダー総合★195
大生なんでも雑談所
玉野総合コンサルタントってどうよ?Part3
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼