なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net

1デフォルトの名無しさん
垢版 |
2015/11/28(土) 18:51:38.86ID:Rc2MJzM/
なあ、再帰関数好きな人いる?
622デフォルトの名無しさん
垢版 |
2016/01/16(土) 22:18:41.95ID:8IHN4wdz
データベースは扱いにくいゴミだそうです。
2016/01/17(日) 15:36:45.95ID:LBaM8j14
いや、もしかしたら
データベースを扱うのに困難を伴うゴミ人間って意味かも
624デフォルトの名無しさん
垢版 |
2016/01/17(日) 18:00:23.51ID:UWpoaTz9
もしかして、もしかしてだけどさ、Haskelのこと言ってるんじゃね?
2016/01/18(月) 05:28:47.91ID:lC5RiWYz
Haskellほどデータベース扱いやすい言語も少ないからそれはない
626デフォルトの名無しさん
垢版 |
2016/01/18(月) 20:02:16.24ID:DTRfKFLk
世界一のデータベースを持つと言われるGoogleがHaskellで動いているくらいだからね。
2016/01/18(月) 20:42:43.12ID:1d5YkXP9
Haskellって実用で使われてんのかw
おもちゃかと思ってたわw
628デフォルトの名無しさん
垢版 |
2016/01/19(火) 15:31:29.42ID:py3nDmvs
おもちゃだよ
Googleのおもちゃ
2016/01/19(火) 21:26:53.35ID:C1tOs2Eu
この世はおもちゃで十分
2016/01/20(水) 12:31:10.14ID:K5mS7ftq
2ちゃんは漏れらのおもちゃ
631デフォルトの名無しさん
垢版 |
2016/01/20(水) 17:52:59.34ID:Evm4j3E4
漏れらとか使う香具師久しぶりに見たわ
2016/01/20(水) 19:02:11.21ID:aKBKow0I
イッテヨシとかギコはにゃーんとかもう死語なんだろうな。
ゴルァはまだありかな。
2016/01/21(木) 12:48:08.73ID:zpe1QHZ3
ヌルポにはガッっていうのはなぜだったのか理由がいまだに判らないので
香具師にどう反応すればいいのかも判らない
2016/01/21(木) 23:38:12.84ID:C4EemGup
>>633
ぬるぽにかぎらず、例外発生したら、ガッ!
2016/01/22(金) 01:18:00.03ID:G5rv7JJ3
>>633
NullPointerExceptionをぬるぽと呼ぶスレだかなんだかいうスレタイのスレが立った2分後に
2が1にガッしたから

だった筈
2016/01/22(金) 11:22:37.47ID:vIHZAGQE
ヌルポ
637デフォルトの名無しさん
垢版 |
2016/01/22(金) 17:22:39.92ID:AzZButyZ
たたき続けなさい
さすればヌルポは失せるでしょう
2016/01/23(土) 18:27:15.12ID:TOjqi36j
>>636
catch
2016/01/23(土) 18:56:26.79ID:0d2orZXz
>>638
ガッてキャッチのことだったの?
640デフォルトの名無しさん
垢版 |
2016/01/31(日) 18:53:58.36ID:N9Aq8poo
>>638
そしてスローせず
2016/01/31(日) 21:42:25.99ID:OzonL4m2
ガッはガッチャの略だろ。 ガッチャマンでお馴染みのガッチャはI have got you.の略で捕まえたとかの意味。
642デフォルトの名無しさん
垢版 |
2016/02/01(月) 01:42:44.99ID:IP+vl4xQ
でもアメリカのドラマ見てると了解するときにガッチャ!って言ってるよね。
特にチャーリーズエンジェルのカエル顔が(別のドラマでも)言ってるような気がする。
2016/02/19(金) 20:26:15.94ID:wEwKzS1i
再帰使うとエラーの予測が立てにくい
2016/02/19(金) 22:00:01.71ID:eeiEIdAh
それ再帰のせいじゃなくてもともと難しいアルゴリズムなんじゃ
2016/02/19(金) 22:04:28.48ID:jxx0XdOv
再帰の方が簡単に難しいアルゴリズムを作れる
2016/02/19(金) 22:41:27.96ID:wEwKzS1i
同じコードでも言語やバージョンの違いで即死する可能性があるのがネック。
可能ならwhileにするよ。
どうでもいいスクリプトなら木にしないけど。
べ、別に再帰関数苦手なわけじゃないんだからね!
2016/02/24(水) 00:10:47.14ID:i1Xglt1a
再帰否定する奴は局所変数も否定すんの?
648uy ◆Qawu9.2l1E
垢版 |
2016/02/25(木) 06:44:19.41ID:loCQbBq3
再帰否定派は生きるのがつらいんだよ
いつも周りのもの何もかも否定してるよ
2016/02/25(木) 12:35:19.93ID:tc7lGvfi
無限か有限かを判別するだけでも難しい再帰コールが簡単に作れるからな
2016/02/25(木) 22:13:06.90ID:OuMkr9Sq
ループなら無限か有限か簡単に判別できるとでも?
2016/02/26(金) 03:25:44.03ID:VdCPJ0Vc
再帰の方が簡単に作れる
2016/02/26(金) 03:33:16.76ID:VdCPJ0Vc
例えば再帰を使えばC++149文字で数学的に非常に判別が難しいコードが作れる
ステップ数がF_φ_ω(0) (n)のオーダー
再帰を使わないともっとずっと必要な文字数は増える
653デフォルトの名無しさん
垢版 |
2016/02/26(金) 12:24:24.63ID:x5+an1W2
つまり再帰を使うと簡単に分かりにくいコードが書けてしまうというアピール

アホなのこいつ?
2016/02/26(金) 12:55:19.99ID:V8jyQAYV
まともなプログラマーしかいなけりゃ問題ないよ
2016/02/26(金) 20:22:01.88ID:KBsVtPlI
適材適所

まぁ、ループは現代ではほとんど高階関数に置き換えられてはいるが
2016/02/26(金) 20:31:47.39ID:VdCPJ0Vc
そうか?
2016/02/27(土) 09:47:03.89ID:GGk6IaQQ
再帰、ループ、高階関数は互いに別カテゴリーの概念だけどな。
2016/02/27(土) 13:35:50.10ID:wN2C/qqy
>ループは現代ではほとんど高階関数に置き換えられてはいるが

mapとかfoldって言いたいの?
2016/02/29(月) 09:52:02.11ID:+UQXiICf
ファンクショナルのことだろ
2016/02/29(月) 12:09:46.90ID:gY4tu7UX
Yコンビネータの事かも
2016/03/05(土) 08:19:26.32ID:C1oJ0ySj
最近の言語は分かり易いから好んで使う人多いみたいだね。

俺はダメだわ。単純な再帰でもアセンブラ時代の間接修飾と再帰を混合で使ってたときのトラウマが・・・
2016/03/05(土) 13:03:33.56ID:4AspLwzf
スタック使うから組み込みでは禁則かな
2016/03/05(土) 16:01:56.83ID:Xc1YGBo+
末尾呼びにすればぁ?
2016/03/06(日) 13:58:13.11ID:9mzH85Ox
無理して使う物ではないのは、確か。
665デフォルトの名無しさん
垢版 |
2016/03/07(月) 19:41:03.81ID:0qoaCMqF
今更だけどアッカーマンの展開ループです
https://ideone.com/dKocyf

これループに直せません?
https://ideone.com/Ub1M86
2016/03/07(月) 20:15:13.20ID:X8YwrOCo
>>665
ループ,というよりは map によるメモ化を先にするべきかと思う
2016/03/07(月) 20:44:00.00ID:ouSCK2N5
アッカーマンメモ化はやめとけ
メモリ使用量がシャレにならん。
小さい引数ならいいけど。
2016/03/07(月) 23:04:02.15ID:ouSCK2N5
と思ったけどスタック消費量は逆に減る?
よくわからんくなってきた。
669デフォルトの名無しさん
垢版 |
2016/03/07(月) 23:55:21.18ID:DhnnCcYX
>>668
アッカーマンはメモ化意味ない
2016/03/08(火) 06:31:35.48ID:mBS7w7C0
しかしヤッターマンならきっとやってくれる
2016/03/09(水) 19:45:38.58ID:8kThrIH6
>>669
それはありえない.
アッカーマン関数にメモ化は有用な手段
http://echo.2ch.net/test/read.cgi/tech/1434079972/14
2016/03/15(火) 20:46:33.65ID:Ar6pzjDU
メモ化とかメモリリークしてるに等しい欠陥技術でしょ。
2016/03/15(火) 20:54:37.80ID:RIoPtDsj
>>672
fjの昔からの議論をここで蒸し返しますか?
2016/03/25(金) 20:10:31.18ID:ARWxn+lM
再帰というソフトにはスタックというハードがあるけどほかのソフトをハードで実装するのはどうなの?
GCとかハードで実装してまったくフリーズなしに出来ないの?
2016/03/27(日) 16:40:13.75ID:WR+Y3fPV
int main(){return main();}
2016/03/31(木) 20:21:06.47ID:qF1fcJk9
とあるRubyスクリプトだけどこれと等価のC書けんの?

$f=lambda{
print "f";
return $g
}

$g=lambda{
print "g"
return $f
}

a=$f
10.times{a=a.call}
677デフォルトの名無しさん
垢版 |
2016/03/31(木) 20:26:53.36ID:+v8smRGz
rubyはcで書かれているんやで知らんかったやろ?
2016/03/31(木) 20:35:19.21ID:qF1fcJk9
そういう等価じゃなくて文法的にというか。
Cだと$fと$gの型をどうしていいかわからん。
2016/03/31(木) 21:08:44.15ID:qF1fcJk9
グローバル変数じゃなくてもこれでいけるっぽい

g=nil

f=lambda{
print "f";
return g
}

g=lambda{
print "g"
return f
}


a=f
10.times{a=a.call}
680デフォルトの名無しさん
垢版 |
2016/03/31(木) 21:11:44.63ID:+v8smRGz
typedef void *(*F)()でいいやんけ
2016/03/31(木) 21:15:14.22ID:qF1fcJk9
まじで
やってみる
2016/03/31(木) 21:20:03.99ID:qF1fcJk9
やりかたわからん。
コンパイル通るソースプリーズ
683デフォルトの名無しさん
垢版 |
2016/03/31(木) 21:36:59.68ID:+v8smRGz
これでいけるやろ
#include <stdio.h>
typedef void *(*F)();
void *f();
void *g();
void *f()
{
puts("f");
return g;
}
void *g()
{
puts("g");
return f;
}
int main()
{
int i;
F func;
func = f;
for (i = 0; i < 10; ++i)
func = func();
return 0;
}
2016/03/31(木) 21:42:19.47ID:qF1fcJk9
g++だとエラーになるんだが。
コンパイラは何で確認した?
685デフォルトの名無しさん
垢版 |
2016/03/31(木) 21:46:42.36ID:+v8smRGz
なんでいきなりg++やねんw
これ以上はcの質問スレでもいって聞けタコ
2016/03/31(木) 21:55:26.05ID:qF1fcJk9
なんだ、結局コンパイル通ってないのか
687デフォルトの名無しさん
垢版 |
2016/03/31(木) 22:06:32.37ID:+v8smRGz
通るわアホw
つーかそんなレベルでよくその質問出来るなお前
2016/03/31(木) 22:09:21.97ID:qF1fcJk9
だからコンパイラは何つかったんよ。
こっちでも確認するから教えれ。
有料コンパイラだったら諦めるけど。
2016/03/31(木) 22:22:46.20ID:qF1fcJk9
まあ、C質問スレにもマルチしてみるわ
2016/03/31(木) 22:23:23.28ID:X8/ytHGi
>>684
ここではうまくいく
http://codepad.org/vXykoc8I
2016/03/31(木) 22:34:22.91ID:qF1fcJk9
>>690
ふーむ確かに。
コンパイラがC++だといかんの?
2016/03/31(木) 22:49:44.78ID:qF1fcJk9
キャストすればいいのか
2016/03/31(木) 22:50:45.57ID:qF1fcJk9
しかしvoid * はなにか負けたような気分になるなw
2016/03/31(木) 23:19:06.00ID:rR3RT0GR
キャストが嫌ならちゃんと型定義すればいいじゃん
と思ったがちゃんとやるには自己参照型定義みたいなのが必要になるのか
Cでそれってできるのかな

関数型Fのポインタを返す関数型をFと定義
2016/03/31(木) 23:22:26.42ID:qF1fcJk9
>>694
そう、それ!
俺もそれで悩んだ。
696デフォルトの名無しさん
垢版 |
2016/04/01(金) 00:06:13.07ID:hr4pCajV
お前はその前に悩むべき問題が山程あるだろw
2016/04/01(金) 03:40:11.25ID:0hX+vVN6
voidにキャストがどうのって、rubyでコード書くような奴に言われてもなぁ。
2016/04/01(金) 22:07:22.21ID:8s2Zo6V8
>関数型Fのポインタを返す関数型をFと定義

これ定義できる静的型言語ってあるの?
それとも本質的論理的に矛盾した型であって、どうやっても定義できないの?
2016/04/06(水) 03:07:16.94ID:0S+muf67
Forループは正直見た目が汚らしい
場合にもよるんだろうけど、再帰で書けるならそっちのほうがコードが綺麗になる
700デフォルトの名無しさん
垢版 |
2016/04/06(水) 12:22:11.84ID:N51toXoc
いかにもルビイバカらしい考え方だな
2016/04/06(水) 19:04:18.80ID:H8hE7WlY
なんでルビイなんだ?
ハスケルバカならまだわかるが。
2016/04/06(水) 23:26:38.04ID:UScN8EXw
るびいもはすけるもよく知らないんでしょ
2016/04/14(木) 21:05:36.57ID:Lg/h7ZOX
Y = λf.(λx.f (x x)) (λx.f (x x)) 
2016/04/14(木) 22:00:43.41ID:Lg/h7ZOX
#include<stdio.h>
char*s="#include<stdio.h>%cchar*s=%c%s%c;main(){printf(s,10,34,s,34);return 0;}";main(){printf(s,10,34,s,34);return 0;}
2016/04/23(土) 00:44:20.59ID:voC0Rj8b
ピクセルシェーダーで再帰関数使えるようになるのはいつだろうか
2016/04/24(日) 20:32:40.26ID:Y7E1SWkm
CPUがGPU化するのが先かGPUがCPU化するのが先か。
まあ超並列プログラムは憧れるけどね。
2016/04/26(火) 20:14:03.31ID:ymr+ysub
main = putStrLn $ q ++ show q where q = "main = putStrLn $ q ++ show q where q = "
2016/04/27(水) 01:24:44.62ID:Pvz0UkFG
超並列はどうしてもデータレースが怖いからハードウェアトランザクションは必須だな
2016/04/28(木) 20:33:07.32ID:B776VxzF
ツクツクボウシの鳴き声を一番正確に表せた奴が優勝 [無断転載禁止]©2ch.net

1 :以下、無断転載禁止でVIPがお送りします:2016/04/28(木) 08:01:56.231 ID:EVnE4ji20
ツクツクボーシッ!!!!ツクツクボーシッ!!!!ツククツ、ツククククククク……!!!
アッ ヴィーナス!!!! ヴィーナス!!!!ヴィヴィヴィヴィッ!!!!!

8 :以下、無断転載禁止でVIPがお送りします:2016/04/28(木) 08:05:05.180 ID:rZ8gq0650
ツクツクホーシ!ツクツクホーシ!ッツクツク、ツクツクホーシ!
ッ!ツクツクヴィーヨー!ツクツクヴィーヨー!ツクツクツクツクアアアアア゙ア゙ア゙ア゙ア゙…天

12 :以下、無断転載禁止でVIPがお送りします:2016/04/28(木) 08:24:50.425 ID:SYCMGSQFa
ツクツクウィーヨーンwwwwwwツクツクウィーヨーンwwwwwwウィーヨーンwwwwwwウィーヨーンwwwwwwあああああああああああああああ あ!!!!!!!
710デフォルトの名無しさん
垢版 |
2016/04/30(土) 22:02:43.20ID:uVz81x78
GitHubで匿名通信(Tor、i2p等)ができるBitComet(トラッカーサイト不要でDHTだけで日本語検索可能)
みたいな、BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenant(純粋P2Pのファイル共有ソフト)の完成が待ち遠しいプログラミングできないアスペルガーw
q
711デフォルトの名無しさん
垢版 |
2016/05/04(水) 10:34:46.82ID:PLBcNQ3k
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrent(Covenant)が活発な情報交換・交流コミュニティでオープンソース開発されています(プログラマー募集中)

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise氏)がそういう人と話したいそうなので、よろしければツイートお願いします<(_ _)>
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできない情報発信好きアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
712デフォルトの名無しさん
垢版 |
2016/05/05(木) 20:47:26.30ID:a3JwFvV1
眠い時にプログラム書いてたら1つの関数の中にこれでもかと再帰を詰め込んだモンスター関数を書いてしまって訳が分からなくなる
2016/05/09(月) 20:57:03.75ID:QYIZFGji
アッカーマン関数はただの再帰じゃないらしいけど、
再帰のパワーを究極まで高めたら何になるの?
2016/05/10(火) 14:12:08.45ID:zxnDb8j/
チューリングマシンになる

証明:以下より明らか
・再帰を用いて、スタックとループをそれぞれ構築できる
・スタック2つとループを用いて、チューリングマシンを模倣できる
・故に、再帰の能力はチューリングマシン以上である。
・一方で、チューリングマシンを用いて再帰を表現出来る
・よって、再帰はチューリングマシンと等価である。

# ツッコミ待ち
2016/05/10(火) 22:44:58.13ID:HO4tbZvB
突っ込み待ちというかそんなに間違ってなくない?
2016/05/11(水) 19:52:51.98ID:+rpbSEWz
なんで再帰がどうこうで喧嘩してるんだこいつらw
2016/05/11(水) 20:12:13.79ID:LnJQmy5e
グッドスタイン数列というのがペアノ算術の限界を超えた再帰という話があるらしいのだが、詳しいことはよくわからない。
でもロマンを感じる。
718デフォルトの名無しさん
垢版 |
2016/05/19(木) 19:24:04.68ID:eYV7veAj
女性限定、恋愛相談サイトオープン。
4000名のイケメンカウンセラーが在籍中♪

自己紹介動画はいつでも見放題です!

メンガ って検索してください
※本当のサイト名は英字です
719デフォルトの名無しさん
垢版 |
2016/06/19(日) 18:09:53.79ID:SmadYZ7Z
最近再帰好きだわ
2016/06/19(日) 20:03:06.77ID:d2BELKj/
ダジャレ?
2016/06/19(日) 20:41:14.58ID:N0SKT7vZ
>>719
そう言う時期が俺にもあったな...(遠い目)
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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