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

■ このスレッドは過去ログ倉庫に格納されています
2018/10/30(火) 09:18:52.77ID:sSPDfgXo
for(i=0;i<N;i++){} //C
2019/01/17(木) 00:15:01.48ID:osMfZJX5
ActiveBasicの関数

function f(a As Long)As Long
return a + a
end function
193デフォルトの名無しさん
垢版 |
2019/01/17(木) 01:34:57.12ID:MMJ3KhK9
>>191
相変わらずロックだなぁw
194デフォルトの名無しさん
垢版 |
2019/01/17(木) 13:12:45.36ID:Oz5T3Fuz
Forthのword定義

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

: f dup * ;

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

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

(define (f a) (+ a a))
2019/01/17(木) 23:25:24.78ID:F6Jr6fGQ
簡潔さで Haskell 優勝って思ってたが Forth も短いねぇ
200デフォルトの名無しさん
垢版 |
2019/01/18(金) 06:02:20.46ID:6q3rR498
Common Lispの関数定義

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

f := method(a, a+a)
202デフォルトの名無しさん
垢版 |
2019/01/18(金) 13:01:02.73ID:ckLRWwbW
関数じゃなく?
それ何のメソッドになるんだろ?
203デフォルトの名無しさん
垢版 |
2019/01/18(金) 13:31:56.01ID:6q3rR498
関数定義は無いのでそれに相当するものということで。
何も指定しなければobjectのメソッドになる。
204デフォルトの名無しさん
垢版 |
2019/01/18(金) 13:55:41.90ID:6q3rR498
コメントするなら使っている言語の関数定義をくれ
2019/01/18(金) 21:31:19.17ID:72xiTuKL
for (auto& it:List){}
2019/01/19(土) 01:33:18.17ID:xhDg2W2P
何だよw
207デフォルトの名無しさん
垢版 |
2019/01/19(土) 13:36:32.09ID:PVZ0YoTG
Clojureの関数定義

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

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

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

def f = {a -> a + a}
2019/01/20(日) 22:47:11.02ID:HPDTXEnZ
日本語プログラミング言語「なでしこ」の関数定義

*f(a)
a+aで戻る
2019/01/21(月) 22:50:45.02ID:BE9sPf4C
kotlin
fun hoge(a:Int):Int {
return a+a
}
2019/01/21(月) 23:05:58.99ID:DKQzzj98
>>216
なんか一行目が残念だ。

aを取る関数f
a+aで戻る

くらいできなかったのかな?
2019/01/22(火) 00:15:38.30ID:f5q/almD
Mindの単語定義

fとは 複写して 加えること。
2019/01/22(火) 00:19:00.59ID:SJtsjRub
ふくしゃのfである
2019/01/22(火) 00:30:33.08ID:4TOwjU0o
>>196
>>219
なるほど同族というのがよく分かるね
2019/01/22(火) 15:43:52.32ID:xIV4Y8jd
>218

関数 f は a をとり
a + a を戻す

くらいでどう?
2019/01/23(水) 20:27:50.21ID:vfudWHG7
Maximaの関数定義

f(a) := a + a ;
2019/01/24(木) 14:45:56.08ID:smaVkwd1
pascalの関数定義

function f(a : integer) : integer;
begin
f := a + a;
end;
225デフォルトの名無しさん
垢版 |
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より差し替え易い。
226a4 ◆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}
2019/01/28(月) 14:08:41.60ID:7iWsICaw
>>226
興味が無い
2019/01/28(月) 14:12:30.05ID:KBGao8A7
>>226
どうでもいい
2019/01/28(月) 17:18:14.13ID:H3y/QtCH
>>226
死ね糖質
230a4 ◆L1L.Ef50zuAv
垢版 |
2019/01/29(火) 07:24:19.01ID:rGCCEfSV
>>227->>229
名古屋の宇宙人「どうしたんだい、IBM、死ね。」
231a4 ◆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."どうしたことか、な、おめーら、
つえーぞ、(知ってん|失点)だぞ。そうだ、こういうときは、こうつくしま。」
232a4 ◆L1L.Ef50zuAv
垢版 |
2019/01/29(火) 07:30:31.02ID:rGCCEfSV
>>227->>229
名古屋の宇宙人「意味はてな?だろ?そう、統合失調症。刑法第39条によって、
こちらは無罪だ。でも、君らは死ね、ではな。」
233デフォルトの名無しさん
垢版 |
2019/01/29(火) 19:09:20.29ID:9e9sJzzs
Arcの関数定義

(def f (a) (+ a a))
234デフォルトの名無しさん
垢版 |
2019/01/31(木) 19:32:51.69ID:dYIE3vu6
# python
def f (a):
return a+a
2019/02/06(水) 04:17:07.12ID:1ngPDcPU
次世代言語勢は書いてくれないのかな
236デフォルトの名無しさん
垢版 |
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]
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]
2019/02/07(木) 08:27:15.80ID:zKojFOZx
bc
define f(a){return a + a}
2019/02/08(金) 18:06:00.43ID:nhsWdDoX
Rebolの関数定義

f: func [a] [a + a]
2019/02/08(金) 18:56:01.92ID:2N5Hmbw3
Rebolすこ。後継がRED何だっけ?
2019/02/08(金) 20:37:38.69ID:nhsWdDoX
知らんけど、そう言っている人はいたな>>127
242デフォルトの名無しさん
垢版 |
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
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
2019/02/20(水) 21:52:15.95ID:93z+Tt04
UWSCの関数定義

function f(a)
  reslut a * a
end function
2019/02/20(水) 22:31:51.68ID:SpCnH/g7
冗長すぎる。
呼んでこその関数なのに終わらせるなや。
まだ始まってもいねーよ。
2019/03/01(金) 22:20:51.41ID:wpTGtxSq
さて、次の 列挙は何がいい?
2019/03/02(土) 01:47:31.43ID:og4HVKiE
switch case

Cの場合
switch(式) {
 case 値1:
  式の結果と値1が一致したときの処理
  break;
 case 値2:
  式の結果と値2が一致したときの処理
  break;
 default:
  式の結果がどの値とも一致しなかったときの処理
}
2019/03/02(土) 03:06:57.58ID:UsZFDqGN
map(collect) / reduce(inject) はどうだろう?
無い言語も多そうだが、それを言ったらswitchもpythonとかは持ってないし
249デフォルトの名無しさん
垢版 |
2019/03/02(土) 08:53:48.62ID:FBcJNwx6
多重分岐、高階関数の例を
まとめて聞いちゃうか
2019/03/02(土) 11:14:33.13ID:og4HVKiE
>>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デフォルトの名無しさん
垢版 |
2019/03/02(土) 14:24:26.96ID:FBcJNwx6
>>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デフォルトの名無しさん
垢版 |
2019/03/02(土) 14:34:51.20ID:FBcJNwx6
>>251
x=i%45

x=i%15
の間違い
253デフォルトの名無しさん
垢版 |
2019/03/02(土) 15:33:33.48ID:R507/Kbo
>>250 python の場合のdefault 処理が抜けてたね。
# 例 str = 'c'

if str in {'a', 'b'}:
 print('abの場合')
elif str == 'c':
 print('cの場合')
else:
 print( 'エラー' )

# cの場合
254デフォルトの名無しさん
垢版 |
2019/03/02(土) 16:58:17.95ID:RAazPGgj
LISPは、・・wiki参照した方が早いなw
255デフォルトの名無しさん
垢版 |
2019/03/02(土) 17:19:54.25ID:FBcJNwx6
またおかしい
>>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
2019/03/02(土) 17:29:29.52ID:HQU7x3/f
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デフォルトの名無しさん
垢版 |
2019/03/02(土) 19:09:12.82ID:FBcJNwx6
>>256
わざわざ普通のFizzBuzzありがとう。
もちろんそうかけます。
258デフォルトの名無しさん
垢版 |
2019/03/03(日) 02:00:43.47ID:vKWKyL5A
>>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デフォルトの名無しさん
垢版 |
2019/03/03(日) 21:24:43.54ID:9zmHOox3
% 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デフォルトの名無しさん
垢版 |
2019/03/03(日) 23:36:56.32ID:TlyfzziM
>>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デフォルトの名無しさん
垢版 |
2019/03/03(日) 23:51:31.92ID:TlyfzziM
>>248
Pythonのifはelse ifを続けやすくしてるので、Cのswitch caseより複雑に条件分岐出来る分、強力。
(Haskellではガードに当たる)
262デフォルトの名無しさん
垢版 |
2019/03/04(月) 00:10:08.73ID:TibQyUgX
>>260 基本的には単なる辞書変換ではない。
マッチしたら処理(複数の)が実行できなければならない。
263デフォルトの名無しさん
垢版 |
2019/03/04(月) 00:55:03.35ID:CTqL7+CV
>>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
2019/03/04(月) 01:11:16.72ID:rLTN1z0Z
短くしてみた >>260

main = mapM_ putStrLn $ map f [1..4]
where f = ¥x -> if x<=3 then "x = " ++ show x else "x = other number"
2019/03/04(月) 01:27:26.35ID:rLTN1z0Z
>>262
―Haskell
main = mapM_ putStrLn $ map f ['b','a','s','i','c']
f x = case x of
'a' -> "aの場合"
'b' -> "bの場合"
otherwise -> "それ以外"
266デフォルトの名無しさん
垢版 |
2019/03/04(月) 01:39:28.31ID:CTqL7+CV
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デフォルトの名無しさん
垢版 |
2019/03/04(月) 02:09:33.72ID:CTqL7+CV
>>264
行数が少ないだけで、意図が分かりにくい。
mapが無駄。

main = mapM_ (putStrLn.f) [1..4]

f x | x <= 3 = show x
f x = "others number"

そもそも命題がCのswitch相当は他の言語でどうしてる?なので短くするのが命題では無い。
(if elseでは無いのに注意)
2019/03/04(月) 14:43:44.85ID:/O719wMt
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デフォルトの名無しさん
垢版 |
2019/03/05(火) 06:16:21.06ID:B2gBj45S
まず、cのswitch caseのコード例がほしい
2019/03/05(火) 08:28:26.95ID:Bb8UPpz3
めくらかな
271デフォルトの名無しさん
垢版 |
2019/03/05(火) 08:43:47.22ID:B2gBj45S
>>247はコード例とはいわんでしょう
2019/03/05(火) 16:39:39.29ID:iMy1mZDl
勉強したてのやつがマウント取るスレになってね?
2019/03/05(火) 21:38:51.56ID:YjygbClv
>>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.

?-
2019/03/06(水) 08:08:24.93ID:fBh61pOJ
>>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.

?-
2019/04/06(土) 12:53:39.01ID:Mn11yHOy
変数のインクリメントはどうやる?
276デフォルトの名無しさん
垢版 |
2019/04/06(土) 13:10:45.56ID:hBfZV6UD
python は、++ が使えないから
n += 1
277デフォルトの名無しさん
垢版 |
2019/04/06(土) 20:28:07.55ID:LfoN0yho
Haskellは関数型言語なので、基本変数の書き換えが出来ない。
(一応IORefとかで書き換え可能だが)

基本はインクリメントされる変数が最終的にどんな働きをするのかによって、
同じ動きになる様に無限リスト使ったり、GUIなら外部とのやりとりそのものも含めて参照透明性保ったりで対応する。
(Haskellの元になった圏論自体が数では無く構造の抽象化を目的にした数学なので)

同じ操作をしたら同じ結果が返ってくる(バグの無い)アプリをユーザーは求める。
これは参照透明性のあるアプリと言える。

参照透明性のある関数を組み合わせて参照透明性のあるアプリ(バグの無いアプリ)は出来そうだが、
参照透明性の無い関数を使って参照透明性のあるアプリを作れるかは分からない。
これが今までバグの無いアプリは無いと言われた根拠ではと考えている。
2019/04/06(土) 22:44:33.30ID:qQhidKgX
> 同じ操作をしたら同じ結果が返ってくる(バグの無い)アプリをユーザーは求める。

そんな一般化はできない。反例としてはランダム要素を含むゲームなど。
同じ操作をしたら同じ結果が返ってくる(バグの無い)アプリを求めるユーザーがいる、なら正しい。
279デフォルトの名無しさん
垢版 |
2019/04/06(土) 23:42:02.81ID:LfoN0yho
そういう反論がある事は考えていたし、実際あなたの言う通り。

屁理屈述べさせて頂くと、圏論は上で書いた通り構造に注目した学問なので、中の値に言及しない。
(なので厳密な数学が硬い数学なら、圏論は柔らかい数学で、レベルによって同じと見なしたり違うと見なしたりする)

入出力と同様ランダムも副作用とされるし、硬い数学ならそれはその通り。
柔らかい数学である圏論のレベルの場合は構造が同じなら、副作用も変数も同じと見なす。

f x = x

f = getLine >>= \x -> read x

f = randomRIO(1,3) >>= \x -> x

上記はxを返すという意味で構造的に同じと見なせる。
コード上で定義されているか、入力かランダムか実体やタイミングなどを除けば同じ入力があれば同じ値を返す。

そんな訳で、ランダムも含めて参照透明性があると言うと、想定外のランダム値は出ない。それに起因したバグは無いってのがまあ、屁理屈になるかな。
パターンマッチで拾いきれないパターンがあるとエラーになったり、一部の論理エラー(文法的に正しいけど、動作上バグ)も弾くのは強力。
280デフォルトの名無しさん
垢版 |
2019/04/07(日) 00:05:26.46ID:DafnpbK7
圏論だ参照透明性だと出て来て難しそうに見えるけど、Haskellの裏でそう言う論理に基づいて処理系が動いてるってだけで、
プログラマーは意識する必要はない。
(必要無いのに知らなきゃダメみたいな雰囲気作ってる純粋関数型言語信者がプログラマーからHaskell触る機会を奪ってるだけ)

もっと言えば純粋関数型言語だからとか、関数型言語だからと肩肘はる必要もない。

型に気をつければ動く算数・数学のエミュレータみたいなもの程度で良い。
変な言語だけど、そう言う言語というだけの意識で良い。
2019/04/07(日) 03:42:18.98ID:r06bl0Nm
>>278
ランダム要素を含むゲームがどうして同じ結果を返せないの?

反例としてはサイコロを振り1が出たら勝つゲーム
サイコロを降ると勝敗を返す
2019/04/20(土) 08:51:05.57ID:taiWhU7u
変数のインクリメント
Rの場合
a <- a+1
2019/04/27(土) 13:02:20.94ID:ayOw6WNl
>>275 python numpyなら配列要素のインクリメントもできる。

import numpy as np
n = np.array([-1,0,1,2])
n += 1
print(n)
# [0 1 2 3]
284デフォルトの名無しさん
垢版 |
2019/05/01(水) 07:03:02.59ID:D4jmMExL
輪廻転生
285デフォルトの名無しさん
垢版 |
2019/05/01(水) 15:41:33.68ID:zxNIeS7i
FOR I=I TO I
NEXT
286デフォルトの名無しさん
垢版 |
2019/05/08(水) 18:38:06.96ID:qUpXgvbZ
r.
r :- r.
287デフォルトの名無しさん
垢版 |
2019/05/08(水) 18:41:10.44ID:qUpXgvbZ
r.
r :- r.
288デフォルトの名無しさん
垢版 |
2019/05/19(日) 10:10:24.78ID:b1S+2jBu
>>80
> 0からNまで繰り返すようなことは
> while使ってiをカウントしていくしか無い

そんな事はない。python では カウンター付き for ループ を enumerate で作れる

for count , x in enumerate('アイウエオ') :
 print(count,x)

'''
0 ア
1 イ
2 ウ
3 エ
4 オ
'''
2019/05/19(日) 11:24:53.27ID:sA5/dcdL
for inじゃん。>>80よく読め
290デフォルトの名無しさん
垢版 |
2019/05/19(日) 15:00:07.17ID:Ep+P2jjw
>>289 知らんがな、自分がリンクを切ってるから話の流れを断ち切って勝手な話をしてるんだろ。
前後関係が一切わからん。
291デフォルトの名無しさん
垢版 |
2019/05/21(火) 23:16:40.30ID:5dr0Nkwr
>>290
ばーか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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