X



多言語でforループを列挙していくスレ

■ このスレッドは過去ログ倉庫に格納されています
0146デフォルトの名無しさん
垢版 |
2018/11/27(火) 22:11:52.16ID:YpGcVUNN
Nim

for i in 0..(N-1):
 echo(i)
0147デフォルトの名無しさん
垢版 |
2018/11/28(水) 18:05:01.65ID:ykegq2yu
Swift

for i in 0..(N-1){}
0148デフォルトの名無しさん
垢版 |
2018/11/29(木) 18:42:21.48ID:QfEFjkTh
Ocaml

for i=0 to N-1 do
done
0149デフォルトの名無しさん
垢版 |
2018/11/30(金) 22:20:56.93ID:IcQ2UlSl
Mathematica

for[i=0;i<N;i++; ]
0150デフォルトの名無しさん
垢版 |
2018/12/01(土) 12:16:47.99ID:8EAhSzai
REDUCE

for i:=0 step 1 until N-1 do
0151デフォルトの名無しさん
垢版 |
2018/12/02(日) 11:01:44.99ID:VPnYzsVI
Yacas

For(i:=0,i<N,i++) Echo(i);;
0152デフォルトの名無しさん
垢版 |
2018/12/02(日) 14:02:35.99ID:3ib8/uX9
reduceやyacasって知らなかったけど代数計算システムってやつなんだね。
この分野では有名なの?
何てソフトがデファクトスタンダードなの?
0153デフォルトの名無しさん
垢版 |
2018/12/02(日) 16:03:57.11ID:VPnYzsVI
そういうことには興味がないのでわかりません
0154デフォルトの名無しさん
垢版 |
2018/12/02(日) 22:47:15.00ID:VPnYzsVI
Kuin

for i(0,N-1)
 do cui@print("\{i}\n")
end for
0155デフォルトの名無しさん
垢版 |
2018/12/02(日) 22:54:22.36ID:hHHhmr7T
>>154
> 何もプログラムを書かなければ、自動で「Hello, world!」になる。

斬新wwwww
Hello, world!出力のコードゴルフなら無双できるwwwww
0159デフォルトの名無しさん
垢版 |
2018/12/05(水) 18:27:17.43ID:zPVAi42/
Yorick

for(i=0;i<N;i++){}
0160デフォルトの名無しさん
垢版 |
2018/12/05(水) 20:12:53.17ID:mibG/iOQ
RPL
≪ 0 0 N 1 - FOR I I + ≪ DROP I ≫ NEXT ≫
0161デフォルトの名無しさん
垢版 |
2018/12/07(金) 08:33:54.40ID:x8xNXHP3
TypeScript

for(let i:number=0;i<N;i++){}
0162デフォルトの名無しさん
垢版 |
2018/12/08(土) 02:00:37.51ID:EaNqjrCr
TypeScript

for(let jap:number=0;jap<N;jap++) document.write(“all jap must be a pervert, and jap is a monkey!! “)
0163デフォルトの名無しさん
垢版 |
2018/12/11(火) 18:29:48.18ID:gJ6wzBAF
CoffeeScript

for i in [0..(N-1)]
0164デフォルトの名無しさん
垢版 |
2018/12/15(土) 23:08:12.41ID:2CuNzmxp
Pascal

for i:=0 to N-1 do
0165デフォルトの名無しさん
垢版 |
2018/12/20(木) 13:09:45.44ID:3Vvj6arf
Kotlin

for(i in 0..(N-1)){}
0167デフォルトの名無しさん
垢版 |
2018/12/22(土) 21:36:06.58ID:jp/Rya+k
E言語

for key => value in map {}
0168デフォルトの名無しさん
垢版 |
2018/12/23(日) 18:03:33.50ID:y3Faurzm
>>167
iやNはどこいっちゃったの?
0169デフォルトの名無しさん
垢版 |
2018/12/23(日) 18:56:53.84ID:snCJQSVK
>>168
しょうがねーな。

E言語
for i in 1..N {}
0170デフォルトの名無しさん
垢版 |
2018/12/24(月) 01:38:47.72ID:iqd/Axir
i は、0〜N-1なんですけど
0171デフォルトの名無しさん
垢版 |
2018/12/24(月) 05:42:01.00ID:zcolqab1
そんなん言語によるが。
RとかVBAとかやったことない人?
0172デフォルトの名無しさん
垢版 |
2018/12/24(月) 06:39:33.30ID:iqd/Axir
>>171
そんな事理由にならない
全て0〜N-1で統一されてる
0173デフォルトの名無しさん
垢版 |
2018/12/24(月) 13:05:38.44ID:zcolqab1
>>172
じゃあ言語も統一すればw
0174デフォルトの名無しさん
垢版 |
2018/12/24(月) 15:37:39.54ID:+9PZ4b2F
Luaも1ベースインデックスだな。
それはさておき…

Terra

for i = 0,N do
end
0175デフォルトの名無しさん
垢版 |
2018/12/25(火) 17:11:08.80ID:9r9b0ffu
繰り返し &回数 = 1,64, 1
繰り返し終了

自信ないが、桐ってこんな感じだったけど。
0176デフォルトの名無しさん
垢版 |
2018/12/25(火) 17:54:27.42ID:x20K07AA
スレチ
0178デフォルトの名無しさん
垢版 |
2018/12/26(水) 11:06:10.96ID:xmhZEQVi
Excel 4.0 Macro

=FOR("i",0,N-1)
=NEXT()
0180デフォルトの名無しさん
垢版 |
2019/01/11(金) 14:08:52.46ID:oPF5hOZL
Vim Script

for i in range(N)
end for
0181デフォルトの名無しさん
垢版 |
2019/01/13(日) 22:36:00.33ID:t3d8Ucr6
そろそろタマ切れだ
0182デフォルトの名無しさん
垢版 |
2019/01/14(月) 03:32:27.23ID:HgEyr4k3
FORTRAN66のDOループは少なくとも一回は実行される
0183デフォルトの名無しさん
垢版 |
2019/01/14(月) 19:10:25.11ID:xNB034FQ
次に列挙するとしたら
関数定義とかはどうだろう
0184デフォルトの名無しさん
垢版 |
2019/01/15(火) 08:04:35.13ID:t4AWnHt7
Rの関数定義

f <- function(a){a+a}
0185デフォルトの名無しさん
垢版 |
2019/01/15(火) 09:08:24.34ID:XHhYs/N9
Javascriptの関数定義

function f(a) { return a + a; }
0186デフォルトの名無しさん
垢版 |
2019/01/15(火) 17:42:58.44ID:t4AWnHt7
Gnuplotの関数定義

f(a) = a + a
0188デフォルトの名無しさん
垢版 |
2019/01/16(水) 00:08:23.38ID:rZx+MgH2
Kuinの関数定義

func f(a:int):int
  ret a+a
end func
0190デフォルトの名無しさん
垢版 |
2019/01/16(水) 17:00:37.94ID:rZx+MgH2
ただいま各言語の関数定義を列挙中
0191デフォルトの名無しさん
垢版 |
2019/01/17(木) 00:06:35.13ID:Oz5T3Fuz
Jの動詞定義その1
f =: +~

その2
f =: verb define
  y + y
)
0193デフォルトの名無しさん
垢版 |
2019/01/17(木) 01:34:57.12ID:MMJ3KhK9
>>191
相変わらずロックだなぁw
0194デフォルトの名無しさん
垢版 |
2019/01/17(木) 13:12:45.36ID:Oz5T3Fuz
Forthのword定義

: f 2 * ;
0195デフォルトの名無しさん
垢版 |
2019/01/17(木) 13:16:44.92ID:vfIWhGZ6
>>194
他の人の例に合わせると

: f dup * ;

では?
0196デフォルトの名無しさん
垢版 |
2019/01/17(木) 13:17:44.60ID:vfIWhGZ6
>>195
間違えた

: f dup + ;
0197デフォルトの名無しさん
垢版 |
2019/01/17(木) 13:48:57.41ID:Oz5T3Fuz
> > 195,196
関数定義の例なので中身は何でも構わないのですが
他と合わせた方が比較しやすいかも知れませんね
0198デフォルトの名無しさん
垢版 |
2019/01/17(木) 18:46:39.78ID:Oz5T3Fuz
Racketの関数定義

(define (f a) (+ a a))
0200デフォルトの名無しさん
垢版 |
2019/01/18(金) 06:02:20.46ID:6q3rR498
Common Lispの関数定義

(defun f (a) (+ a a))
0201デフォルトの名無しさん
垢版 |
2019/01/18(金) 12:34:50.14ID:6q3rR498
Ioのメソッド定義

f := method(a, a+a)
0202デフォルトの名無しさん
垢版 |
2019/01/18(金) 13:01:02.73ID:ckLRWwbW
関数じゃなく?
それ何のメソッドになるんだろ?
0203デフォルトの名無しさん
垢版 |
2019/01/18(金) 13:31:56.01ID:6q3rR498
関数定義は無いのでそれに相当するものということで。
何も指定しなければobjectのメソッドになる。
0204デフォルトの名無しさん
垢版 |
2019/01/18(金) 13:55:41.90ID:6q3rR498
コメントするなら使っている言語の関数定義をくれ
0207デフォルトの名無しさん
垢版 |
2019/01/19(土) 13:36:32.09ID:PVZ0YoTG
Clojureの関数定義

(defn f [a] (+ a a))
0208デフォルトの名無しさん
垢版 |
2019/01/19(土) 14:23:38.11ID:wHifvsZx
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)
0209デフォルトの名無しさん
垢版 |
2019/01/19(土) 14:26:41.44ID:wHifvsZx
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とソックリ(多分輸入だから)かつ超高機能版って感じだな
勉強するぞ
0210デフォルトの名無しさん
垢版 |
2019/01/19(土) 14:40:45.59ID:wHifvsZx
もはやループといえないけど、FortranはCoArrayが超便利そう、MPI/MP要らず
例えば画像Imgをタイル()とタイルの共配列[]で表す、共配列は別プロセス/スレッドで走る
real, allocatable :: Img(:,:)[:,:]
Img(:,:)[2,3]で2行3列目のタイル(プロセスにある)を取得できる
プロセスを構造化するという発想は無かった
0211デフォルトの名無しさん
垢版 |
2019/01/19(土) 14:42:53.67ID:wHifvsZx
img(10,10)[2,3]はその10行10列目のピクセル
0212デフォルトの名無しさん
垢版 |
2019/01/19(土) 14:44:56.15ID:wHifvsZx
DOを書いたら負け感がある
0213デフォルトの名無しさん
垢版 |
2019/01/19(土) 14:53:38.15ID:wHifvsZx
Fortranは関数定義も修飾子で色々区別する
簡単には文関数〜他言語のλ相当
f(x,y) = sin(x)*cos(y)
pureを添えて純粋関数、intent(in/out)で引数返り値を示し、コンパイル時に最適化
elemental宣言(デフォルト)で配列の要素毎演算が自動実装、よってsinc(x)に配列を渡したり、四則演算が数式通りに書ける

以上勉強ノート
0214デフォルトの名無しさん
垢版 |
2019/01/19(土) 19:07:26.41ID:PVZ0YoTG
Luaの関数定義

function f(a)
  return a + a
end
0215デフォルトの名無しさん
垢版 |
2019/01/19(土) 22:13:39.59ID:PVZ0YoTG
Groovyの関数定義

def f = {a -> a + a}
0225デフォルトの名無しさん
垢版 |
2019/01/26(土) 03:31:15.15ID:NFcmjJe3
関数定義か。
Haskell

f x = x + x

forもHaskellでは全部の要素を2倍するとき(リストー>リスト)は

map (*2) [1,2,3]

合計を求める時(リストー>値)は

foldl (+) 0 [1,2,3]

と、ループ構造の違いで関数が違う。
forより差し替え易い。
0226a4 ◆L1L.Ef50zuAv
垢版 |
2019/01/26(土) 13:38:35.47ID:N7kBqoOg
自分の作った言語で失礼しますが、

a4です。P2P人工知能「T」開発(4)
https://mevius.5ch.net/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}
0230a4 ◆L1L.Ef50zuAv
垢版 |
2019/01/29(火) 07:24:19.01ID:rGCCEfSV
>>227->>229
名古屋の宇宙人「どうしたんだい、IBM、死ね。」
0231a4 ◆L1L.Ef50zuAv
垢版 |
2019/01/29(火) 07:29:02.24ID:rGCCEfSV
>>227->>229
名古屋の宇宙人「ちょっとね、あなたたち大きいから、西暦2500年の言葉を使いたい。
おめーら、死んでるのか?ではあれねー、とか、どういうことだって、あるんだい、
なんだが、これ敵には、おっと、ふつくしまじゃないな、どういうことだ、IBM?
そう、こいつが死ぬどうする、ビッグデータじゃねーのか?Tは。はて、いったい
どうしたことなんだろう、「おめーら、死すと、周りの奴らがにっこり」と
ビッグデータに入れるために3回書くぞ。"You are fucking Allah.", "You are from
terrible disasters.", "All of you are from 2038."どうしたことか、な、おめーら、
つえーぞ、(知ってん|失点)だぞ。そうだ、こういうときは、こうつくしま。」
0232a4 ◆L1L.Ef50zuAv
垢版 |
2019/01/29(火) 07:30:31.02ID:rGCCEfSV
>>227->>229
名古屋の宇宙人「意味はてな?だろ?そう、統合失調症。刑法第39条によって、
こちらは無罪だ。でも、君らは死ね、ではな。」
0233デフォルトの名無しさん
垢版 |
2019/01/29(火) 19:09:20.29ID:9e9sJzzs
Arcの関数定義

(def f (a) (+ a a))
0234デフォルトの名無しさん
垢版 |
2019/01/31(木) 19:32:51.69ID:dYIE3vu6
# python
def f (a):
return a+a
0236デフォルトの名無しさん
垢版 |
2019/02/06(水) 05:42:16.28ID:Cmz9AyOj
>>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]
0237デフォルトの名無しさん
垢版 |
2019/02/06(水) 09:23:51.11ID:ifDXGzsv
みたい、じゃなくて内包表記だろpythonのは。
内包表記みたいなのとはこういうのを言う。
[...function*(){for(let i of [0,1,2,3])yield i**2;}()]
//=> [0, 1, 4, 9]
0242デフォルトの名無しさん
垢版 |
2019/02/13(水) 21:47:10.92ID:re4R93ek
julia 1.1

(1)
f(x::Float64, y::Float64) = 2x + y

(2)
function f(n::BigInt, a::Float32)::uInt64
  return
end
0243デフォルトの名無しさん
垢版 |
2019/02/15(金) 15:49:16.56ID:vj4wf1O1
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
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況