[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/08 14:06 / Filesize : 275 KB / Number-of Response : 1034
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

なあ、再帰関数好きな人いる?



1 名前:名無しのプログラマ [2015/08/09(日) 17:46:33.69 ID:Icb40LOY.net]
for,while使うの嫌いで基本的に再帰多用するんだが、だめなの?
皆から敬遠されてる気がする

545 名前:デフォルトの名無しさん [2015/08/28(金) 21:35:35.21 ID:5JQ0ubd6.net]
もっともよく使うデータ構造は木です
木の探索にループを使うのはナンセンスです

546 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:35:43.99 ID:p8e2JvhL.net]
リンクリストを使った方が簡単になるならそうするよね

547 名前:デフォルトの名無しさん [2015/08/28(金) 21:36:22.40 ID:5JQ0ubd6.net]
1+2*3+4*5-6/7*8+9*10

木です

548 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:37:14.01 ID:k07is2fO.net]
木構造よりも配列の方がよく使います

549 名前:デフォルトの名無しさん [2015/08/28(金) 21:38:08.70 ID:5JQ0ubd6.net]
>>537
それは単価の安いエンジニアだからです

550 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:38:50.59 ID:p8e2JvhL.net]
何でもかんでも配列を使う方がどうかしてる
問題によってデータ構造を選ぶのが適切

551 名前: []
[ここ壊れてます]

552 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:39:52.00 ID:k07is2fO.net]
>1+2*3+4*5-6/7*8+9*10

>木です

これの面白い点は、
通常パーサで再帰下降型など再帰が使われることは無いということです

553 名前:デフォルトの名無しさん [2015/08/28(金) 21:42:13.29 ID:5JQ0ubd6.net]
gotoが使われます



554 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:43:36.30 ID:k07is2fO.net]
なんでも配列を使うとはいっていません
もっともよく使われるデータ構造は、配列だと言っているだけです
もっともよく使われるデータ構造である配列のループに
再帰を使うのはナンセンスです
配列を良く使うことと、ループ分を良く使うことは、同義と言って良いでしょう
配列はよく使われるので、ループも良く使われます

555 名前:デフォルトの名無しさん [2015/08/28(金) 21:46:23.84 ID:5JQ0ubd6.net]
配列が命令を格納したものなら通常はgotoで飛びます。ループのようなオーバーヘッドの大きな処理は使われません

556 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:48:29.35 ID:3pAHpuiu.net]
1+2*(3+4*(5-6))/7*(8+9)*10!

557 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:58:33.93 ID:k07is2fO.net]
一般的にプログラムでもっともよく使われる構造的なデータといえば、文字列でしょう
文字列の表現には配列が適しています
つまり、配列はとても沢山使われるということです
配列の操作にはループ文が適しています
配列で表現された文字列に対して、
strlenなどの文字列操作を再帰で実装するのはナンセンスです
つまり、ループ文はとても沢山使われるということです

558 名前:デフォルトの名無しさん [2015/08/28(金) 22:03:28.46 ID:5JQ0ubd6.net]
一行目が違います

559 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:23:58.40 ID:bBNOiFa3.net]
>>546
正しくはなに?

560 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:01:39.79 ID:p8e2JvhL.net]
>>542
ちなみにScalaとかでは配列を使うのはパフォーマンスを求めるときぐらい
ふつうに順序づけられた集合を表すのはList(という名のリンクリスト)だよ

561 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:10:55.11 ID:bBNOiFa3.net]
Scalaというよく使われない言語を持ってこられても困るよなw

562 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:14:12.40 ID:p8e2JvhL.net]
え?よく使われてるよ?
Twitterとか、日本でもドワンゴとかね

563 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:14:42.73 ID:bBNOiFa3.net]
それ以外では使われてない。



564 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:15:03.90 ID:cjHddNQ+.net]
お前らはLispを書かんのか?
業務でぇとか、しみったれたこと言うなよ。

565 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:15:34.96 ID:bBNOiFa3.net]
業務以外なら書くよ。

566 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:19:28.80 ID:p8e2JvhL.net]
他にもいっぱい使われてるよ
ちょっと調べれば出てくる

567 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:25:39.66 ID:cjHddNQ+.net]
Lisp書くなら、配列の何とも言えない不自由さに辟易しているのでは?
ただしループは認める。やはりスタックが...

568 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:32:38.56 ID:bBNOiFa3.net]
>>554
githubのランキングを見たが少なかったぞ。

そんなデータ信用できねーよと言うのなら、
それはそれでいいが、それなら君が信用できて
誰でも検証可能なデータを示すべきだ。

569 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:48:40.83 ID:k07is2fO.net]
配列はランダムアクセスが出来て便利
リンクリストはランダムアクセスが出来ないので不便
なので、配列の方が、より、汎用性のあるデータ構造といえます
使い勝手のいいデータ構造を採用する事は、可読性に繋がります
一般に配列は、挿入、削除、リサイズが遅いとされていますが、
単に、そういう風に対立構造にして、場合に応じて使い分ける風に言ったほうが、
かっこいいから、そう言っている、というだけです
例えば、クリエイティブならMac、という紹介文章みたいなもんです
リンクリストにも華を持たせてあげましょう、というだけです
配列の挿入、削除、リサイズは、そこまで遅いわけではありません
memcpy memmoveはカリカリにチューニングしてあり、とても速いです
CPUのキャッシュに乗りやすい処理であるのもポイントです
最近のPCのメモリ帯域を確認してください
対して、リンクリストのランダムアクセスは、とても重いです
CPUのキャッシュに乗りにくい処理です

570 名前:デフォルトの名無しさん [2015/08/29(土) 00:15:20.73 ID:hP/roqxQ.net]
いつから配列のリサイズが重くなくなったんだw

571 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:41:01.81 ID:bUE2FMpc.net]
メモリ確保・解放の重さは、回数が問題

処理中にメモリ確保・解放しまくるデータ構造は、

572 名前:とんでもなく重い。 []
[ここ壊れてます]

573 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:44:15.53 ID:haT66cVy.net]
スタックとか関数呼び出しのために
メモリ確保・解放してるからなぁ。



574 名前:デフォルトの名無しさん [2015/08/29(土) 00:52:02.37 ID:abZzEG6q.net]
プログラム関係について語り合うならBeLongs!がおすすめ。
よかったら、「blngs」で検索してみて!

575 名前:デフォルトの名無しさん [2015/08/29(土) 02:02:43.87 ID:TLrhTEkt.net]
>>559
せやろか?
俺の経験では処理の遅さはメモリ確保の回数よりも
メモリのサイズに比例する。

576 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 02:06:54.96 ID:g5UyIGYz.net]
俺の経験では、
処理の重さはメモリ「開放」の回数に比例する
無論C/C++のfree/deleteの話だが

577 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 02:32:09.50 ID:haT66cVy.net]
メモリ確保って言っても律儀に
指定したメモリを毎回確保・解放してるわけじゃないからな。

ある一定サイズをどかんと確保して、
ちょこちょこ割り当てて使用している。

578 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 02:45:20.83 ID:g5UyIGYz.net]
ドカンと確保せず、毎回OSのページサイズ単位で確保した方が早い
WindowsならVirtualAlloc これは速い
mallocなどドカンと確保して、ちょこちょこ割り当てる、これが全く重い
正確には割り当てるのは速い 解放がとてつもなく遅い

579 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 03:55:56.31 ID:VNb5NXe3.net]
メモリの確保/解放を考える時点でなんか違うよ

もちろん、そこまで考えなきゃいけない分野はあるし、そういう分野で再帰を使うのは間違ってると
思うけど、一般の人間はそこまで考えなくていいからね

580 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 06:20:13.75 ID:sPvi53Zp.net]
メモリの確保/解放を考えないなんてもう論外。

プログラマとしてまともな仕事を扱うこともなく
任されることもない、
いい加減なコードを書くだけで信用も期待もされない。

これ一般じゃあない。

581 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 06:48:33.39 ID:e0Hg3/HL.net]
配列などない
ポインタがあるだけだ

582 名前:デフォルトの名無しさん [2015/08/29(土) 06:54:58.07 ID:hP/roqxQ.net]
世の中にはC言語以外の言語もあるのよ

583 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 13:05:13.99 ID:VNb5NXe3.net]
>>567
そこまで考えなきゃいけない分野があるのは事実だが、それをマニュアルでやる分野はレア

マニュアルでやってたら絶対バグるから、モダンな言語にはガベージコレクタなどの技術が
採用されてるんだしね



584 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 13:57:09.93 ID:7eeJLuGb.net]
>>531 ワロタ。お前道具もまともに使えない社畜だな、もう別のとこ行くか、黙ってみてろ

585 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 17:10:01.35 ID:g7aWBHc9.net]
別に再帰だから再帰じゃないからなんだって思うが

586 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 18:43:39.65 ID:g7aWBHc9.net]
>>568
アドレス演算≠ポインタ演算

587 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 14:09:15.19 ID:PCX+Z6xE.net]
>>559
calloc?…

588 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 14:09:53.80 ID:PCX+Z6xE.net]
>>574
ごめんなさい誤爆しました

589 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 01:14:01.81 ID:t91IYFQ3.net]
>>542
いやいや
スクリプト言語だと配列という名前でもハッシュだったりするし
最近は配列を多用するのはc/c++(c++あんま知らんけど)くらいだと思うんだけど
javaでもなるべくコレクション使うようにするし

590 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 01:16:56.25 ID:t91IYFQ3.net]
配列はデータの追加や削除の効率が悪いデータ構造だし
immutableに向いてないからキツイ

591 名前:デフォルトの名無しさん [2015/09/01(火) 02:05:52.14 ID:DJMTd98b.net]
"スタックオーバーフロー" "クイックソート" site:.ac.jp
でググったら、とっても残念なページを見つけてしまった。
素人ならまだしも、T 大学の N 先生、あなたがそんなことじゃだめでしょう。
クイックソートがスタックオーバーフローするのは recursive call のせいではありませんよ。

592 名前:デフォルトの名無しさん [2015/09/01(火) 02:14:07.76 ID:6K59ZHF3.net]
>>577
その人、たぶん、なんでデータの追加や削除の効率が悪いのかもわかってないのでは、と。

593 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 03:08:24.61 ID:ucFEbRDO.net]
>>577
その人、たぶん、配列=メモリに連続して固定長のデータが並んでいるもの
それ以外は認めない。という間違った考え方をしてる。



594 名前:デフォルトの名無しさん [2015/09/01(火) 03:11:38.75 ID:Uqk8gU8P.net]
>>578
recursive call のせいですよ

595 名前:デフォルトの名無しさん [2015/09/01(火) 03:12:23.69 ID:Uqk8gU8P.net]
>>580
間違ってないですよ

596 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 03:14:38.29 ID:ucFEbRDO.net]
>>582
やっぱり固定長データが連続で並んでるものしか
認めないと思ってるのかw

明らかに間違ってるぞ。
C言語以外の言語の話をしようか?

597 名前:デフォルトの名無しさん [2015/09/01(火) 03:29:20.63 ID:6K59ZHF3.net]
連続じゃなくてもいいけど(しかもハッシュじゃなく)アクセスがO(1)な
アドレスマッピングの方法を使ってる言語なんかあるの?

598 名前:デフォルトの名無しさん [2015/09/01(火) 03:29:25.49 ID:Uqk8gU8P.net]
>>583
C言語以外じゃないと都合が悪いのか?
じゃあC言語でお願いします

599 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 03:30:24.33 ID:ucFEbRDO.net]
>>585
あ、C言語限定じゃないと困るんだw

600 名前:デフォルトの名無しさん [2015/09/01(火) 03:32:07.57 ID:Uqk8gU8P.net]
>>586
はい、基本C言語でお願いします
よろしくお願いいたします
配列=固定長データが連続で並んでる
これでいいですね

601 名前:デフォルトの名無しさん [2015/09/01(火) 03:32:28.71 ID:Uqk8gU8P.net]
ふぅ、論破完了

602 名前:デフォルトの名無しさん [2015/09/01(火) 03:32:41.75 ID:6K59ZHF3.net]
単に「配列」って名前の付いてるハッシュの話してるんじゃないかと思う。
そしてそれは(データ構造としての)配列ではない。

603 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 03:33:05.52 ID:C9NG6GGp.net]
配列は抽象化されていないデータ構造なのか?

真にそう言えるのは1ビットのみである



604 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 03:40:53.92 ID:ucFEbRDO.net]
>>587
C言語においては、配列は固定長データが連続で並んでる。
その他の言語ではそうとは限らない
だから"配列"だけで断定することは出来ない。

これでいいですよ。

605 名前:デフォルトの名無しさん [2015/09/01(火) 03:44:11.25 ID:Uqk8gU8P.net]
>>591
C言語はプログラム言語です
つまり、プログラムにおいて配列とは固定長データが連続で並んでるものなんです

606 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 04:07:30.08 ID:ucFEbRDO.net]
わかりやすく言うと

プログラム言語 というカテゴリの中に
 ・C言語
 ・Perl
 ・PHP
 ・Ruby
 ・その他
 などが含まれます。

その中で、C言語では配列とは固定長データが連続で並んでるものなんです

607 名前:デフォルトの名無しさん [2015/09/01(火) 04:14:14.53 ID:Uqk8gU8P.net]
>>593
C言語以外では困るのでC言語でお願いしますと言いました。
いいですか、私はC言語以外では困るんです。
あなたは私を困らせたいのですか?困らせたくないでしょう。
私に同情してください。
配列=固定長データが連続で並んでる
これでいいですね。

608 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 04:19:55.14 ID:C9NG6GGp.net]
>>593
スクリプトだらけなんだが…

609 名前:デフォルトの名無しさん [2015/09/01(火) 04:24:44.91 ID:6K59ZHF3.net]
つうか、C言語のもの以外それみんな名前が「配列」なだけのハッシュ…

610 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 04:33:56.34 ID:ucFEbRDO.net]
配列の実装がハッシュなだけ。
配列だからって、実装まで決まらない証拠。

611 名前:デフォルトの名無しさん [2015/09/01(火) 04:37:44.81 ID:Uqk8gU8P.net]
>>597
ふうむ、たとえば二分探索木の実装に赤黒木やスプレーツリーがあるように
データ構造にも抽象的なものとより具体的なものがあるわけっしょ。
つまり、抽象データ構造としての配列とより具体的なデータ構造としての配列があり、
抽象データ構造としての配列に連想配列が含まれ、より具体的な連想配列のデータ構造として
ハッシュテーブルがあるってことでしょね。

612 名前:デフォルトの名無しさん [2015/09/01(火) 04:57:20.77 ID:6K59ZHF3.net]
データ構造についての普通の教科書読めば
そういう緩い意味で「配列 array」は使わないことがわかるよ。

613 名前:デフォルトの名無しさん [2015/09/01(火) 04:58:46.51 ID:6K59ZHF3.net]
array data structureとarray data typeとの区別をつけようね。



614 名前:デフォルトの名無しさん [2015/09/01(火) 05:04:47.15 ID:6K59ZHF3.net]
細切れに書いちゃってアレだけど、
array data typeはその実装がリストでもいい。
だから、効率性を云々する時のarrayはarray data typeではなくて
array data structureの話じゃなきゃいけない。そしてarray data structureは
インデックスからアドレスへの容易な算術演算によって(典型例が
データの連続配置)、O(1)アクセスを可能にするデータ構造。

615 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 06:38:20.62 ID:lctJDoUS.net]
いや、そんな長々と説明しなくていい

616 名前:諱B
array data structureがO(1)でなければならないというのなら
それを定義したのはどれかを言ってくれればいい。
おそらく無いからそれをごまかすために説明してるんだろうと思ってるけどねw
[]
[ここ壊れてます]

617 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 07:30:15.06 ID:CkpgYLyf.net]
>>594
うわあ、これはマジモンでヤバい人だ…

618 名前:デフォルトの名無しさん [2015/09/01(火) 08:00:49.42 ID:/DoXUIG1.net]
tet

619 名前:デフォルトの名無しさん [2015/09/01(火) 08:05:00.21 ID:/DoXUIG1.net]
メモリの取得、解放なんかは
OS自体にその手の機能が存在してるべきなんだよ
速度をそこまでガチで求めない場合の簡易版で良い

620 名前:デフォルトの名無しさん [2015/09/01(火) 08:11:25.32 ID:KtW8DmAo.net]
ゲーム木探索とかの再帰じゃないとできないことぐらいしか再帰関数でやらない
逆に再帰関数はforやwhileに書き換えできる? 出来るならそっちにしたいレベル

621 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 08:25:26.84 ID:vcgHCiFQ.net]
テンプレートメタプログラミングやC++11のconstexprだと、どうしても再帰使わないと書けないコードでてくる……
あれってなんか解決策あるんですかね……
怠惰なインスタンス化のように無限再帰を回避する方法ならあるけど

622 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 12:55:10.42 ID:4i2DmfPV.net]
>再帰じゃないとできない

まず無い。
再帰でベンチマーク作るのでなければ。

623 名前:デフォルトの名無しさん [2015/09/01(火) 13:38:18.55 ID:DJMTd98b.net]
>>581
君に理解できる話じゃないよ。
クイックソートのスタックオーバーフローを防ぐためと称して
非再帰化しろだのスタックサイズを増やせだのと、
君程度の人なら言うかもしれないが、大学の先生がそんなことじゃ困る。
空間計算量の最適化を教えなさいよという話だ。
それ無しに非再帰化だのスタックサイズだのと言われる学生さんが可哀想だ。



624 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 13:48:33.08 ID:4i2DmfPV.net]
>>609
君ごときの無能にそんなことじゃ困るなんて言われる
先生がかわいそうだ。

625 名前:デフォルトの名無しさん [2015/09/01(火) 15:23:42.04 ID:6K59ZHF3.net]
>>602
data typeじゃなくて data structureとしてのarrayなら下にあるけど?
常識なんで、定数アクセスじゃないadsがあるというならむしろそっちが実例挙げてね

https://en.wikipedia.org/wiki/Array_data_structure

626 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 19:15:05.37 ID:jZfLWulg.net]
大学と共同研究とか外注受けたりとかやったことあるやつは
大学の先生の技術レベルがやばいのは経験してるでしょ

いまさら騒ぐ事でもねーよ

627 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 00:47:36.69 ID:kkVdXJxG.net]
サイ基地外は現実を否定することしかできない

628 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 17:48:58.50 ID:pfz+JPDH.net]
メモリ上でスラッと並んでるのが配列であって
そうじゃないけど並んでるように見えるのは
あんまり配列とは呼びたくないでござる。

629 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 19:19:55.89 ID:DAe+xWqL.net]
組み込みや専用機なら配列と言う概念はいらない

630 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 02:22:06.78 ID:APM+2rA2.net]
位置の並びは関係なく、演算だけで区別できるのが配列
Rubyの配列はRuby用語

631 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 11:36:04.16 ID:hDY8eKzg.net]
こんなにも配列の話題で盛り上がるとは
みんな配列が大好きだね
人気者の配列のループには繰り返し文を使うから
繰り返し文は不滅だね

632 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 11:44:10.96 ID:HOkCudGK.net]
>>614
わかる。配列とコレクションは別だよな。

633 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 12:12:06.19 ID:dGS6eFW0.net]
配列の処理もforじゃなくて再帰で書くんだがやめたほうがいいのかね



634 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 12:26:06.74 ID:hDY8eKzg.net]
>>619
具体的にどんな感じで?

635 名前:デフォルトの名無しさん [2015/09/03(木) 14:27:45.88 ID:9nQXwra1.net]
>>620
head, tail,

636 名前:append さえあれば普通のリストとほぼ変わらん []
[ここ壊れてます]

637 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 15:43:06.69 ID:dGS6eFW0.net]
>>620
hoge(input, output){
  if (size(input) == 0) {
    return;
  }
  return hoge(tail(input), output.append(dosomething(tail(input))));
}

こんなかんじ

638 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 18:02:46.75 ID:IwEVB15/.net]
わざわざ再帰を使うなんてやめた方がいい。

ちゃんとループで書く技術を身につけるべき。

639 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 18:37:19.10 ID:dGS6eFW0.net]
forのほうが手軽なんだけど、しょーもないインデックスミスしちゃわない?
最近はどの言語も範囲forがあるから、まだいいんだが

640 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 19:27:47.89 ID:FSKtVBgW.net]
> forのほうが手軽なんだけど、しょーもないインデックスミスしちゃわない?
あんまりないな。いつも書き方一緒だし。
それ以外の書き方をしていれば「?」となる。

641 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 19:39:17.92 ID:6KaE3e8w.net]
単に慣れの問題

642 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 19:55:45.70 ID:Fz3Ka6Ix.net]
>>624
しょーもないミスをしないためにも再帰は覚えておくべきだね
使いドコロはケース・バイ・ケースだけど
何が何でも再帰を避けるようなことさえしなければいいんじゃない?

643 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 20:37:42.86 ID:FSKtVBgW.net]
>>627
forは範囲forで対応できるけど、
再帰は、範囲再帰ってあるの?w

再帰のほうがしょーもないミス多いよね。
終了条件ミスってスタックオーバーフローw



644 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 21:22:18.75 ID:qp+WFxZL.net]
範囲forに対応するものは高階関数になるんでね?
なんでもできてしまうforよりかは
畳み込み、map,foreach, filterなんかで使いわけたほうがいい

645 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 21:23:50.62 ID:qp+WFxZL.net]
後は >>= , <*>






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<275KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef