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


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

C言語なら俺に聞け 145



1 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 22:13:58.98 ID:9/te2eSJ0.net]
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
codepad.org/

C11
www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/


C言語なら俺に聞け 144
https://mevius.5ch.net/test/read.cgi/tech/1514025223/

次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

768 名前:デフォルトの名無しさん [2018/04/01(日) 14:30:49.47 ID:QnlJ7EAH0.net]
*“オレは知っている。選手は判っていない。”と思い込んでいる。
→「私が中心」(選手は不在)
→選手の変化が見えない。

*“あれもこれも伝えたい”と思っている。
→指導者の自己の存在証明をしたいだけ。
→選手の依存過多を喜んでいる。
→指導者の中身の無さを補償している。
→自分の目標と選手の目標がズレていることに気がつかない。
→成長のゴール設定が不明確。あるいは勝つことだけに目標を設定している。
(勝負までに何をやりきったらよいのか/何を発揮したら勝利か/勝った後どうするか、指導者ならば明確にもっておきたい。)
→優先順序が整理できていない。
→現状の把握すらできなくなっている。

*“言わないと相手のためにならない。”と信じている。
→根本的に選手を信頼していない。
→“指導”という名の自己

769 名前:梠ォ。

*“今、言わないといけない。”という焦り
→指導計画の無さが露呈しただけ。
→日頃の怠慢のツケ。
(直ちに言わないければいけないことはあるが、そう頻発しない。)

*“自分の経験なら、具体的に伝えることができる”という自分の過去へのこだわり
→指導者自身の学習がストップしている。
→偏狭さの表出
→選手より、常に自分が上。
→自分のコピー以外のモデルがない。
→指導者自身の目標が低い。(悪い意味で、すぐに満足する。)
→自分の小ささに築かない哀れさ

解決策を提示する悪癖からの脱却は、選手を信頼することがキー。選手を信頼できるかどうかは、選手の問題ではなく、指導者自身の課題。
[]
[ここ壊れてます]

770 名前:デフォルトの名無しさん [2018/04/01(日) 14:31:46.69 ID:QnlJ7EAH0.net]
選手がある程度育っているにもかかわらず、解決策ばかりを提示してしまうとしたら……

指導者のサービス精神が、少々裏目に出ただけ。
やり方を、知らなかっただけ。
視線が、近い所に留まり過ぎただけ。

選手の考えと主体性に賭ければ良い。
「質問するだけ」「聞くだけ」で十分。他愛ない会話で済むかもしれない。

指導者としてのやり方を、ちょっと広げるだけ。

選手と一緒に成長すればよい。

771 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 15:09:50.39 ID:EJgAiXSoa.net]
長い3行で

772 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 20:22:49.32 ID:FPe02iov0.net]
c疲れる高級言語が良いよぉ

773 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 22:01:04.55 ID:Xs8rW8os0.net]
破門

774 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 22:02:31.16 ID:kjSWJmola.net]
C++よりは65536倍マシ

775 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 02:42:44.32 ID:335Cb1sP0.net]
C++の方が全然マシ。
C++で要求されるのは記憶力だが、Cはマジで実力が試される。

776 名前:デフォルトの名無しさん [2018/04/02(月) 04:26:42.33 ID:3ewhMOuha.net]
>>747
ほんそれ

>>748
C++はごちゃごちゃしすぎ
Objective-Cの方が良い



777 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 09:23:05.49 ID:tz45bHyl0.net]
そんな君達に、C#

778 名前:デフォルトの名無しさん [2018/04/02(月) 11:32:18.94 ID:IY8Jb2oda.net]
C#は何かとっても嫌な予感がするのでパス

779 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 11:37:34.04 ID:GUMdRf0S0.net]
組込みならverilog

780 名前:デフォルトの名無しさん [2018/04/02(月) 14:47:00.17 ID:r6uHUG7/0.net]
C#はないわ

781 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 15:09:03.97 ID:+y0jgVYha.net]
C, C# はアリ
C++みたいな汚い言語はナシ

782 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 15:11:32.65 ID:hvd81u+Da.net]
Cライクな言語なら何でもこいだわ
(知らないのは新たに勉強せざるを得ないが)

1人で書くのは大抵C++

783 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 16:32:47.98 ID:gGbBmtO80.net]
C、C#、Goが好き

784 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 17:06:51.28 ID:E1iWIfmB0.net]
C++17かなり良くなってきたね
C++98での苦行が嘘のよう

785 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 17:07:57.92 ID:NgLCsptVp.net]
c++はテンプレート辺りから怪しくなって来た。

786 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 17:35:10.19 ID:Hj+Kq4pv0.net]
オールアセンブラで組んでた人が楽になるための言語。



787 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 17:46:48.43 ID:E1iWIfmB0.net]
STLを初めて見た頃は違和感ありありだったけど
それはテンプレートを使うからでも、見た目が悪いからでもなく、中途半端だったから
C++11から以後、そのへんの補完工事が始まったのがありがたい

788 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 17:52:55.07 ID:NgLCsptVp.net]
結局テンプレートって、型をオブジェクト型に統一してしまえばいいだけで、あんまり意味無いよな。

789 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 18:00:26.75 ID:E1iWIfmB0.net]
Smalltalk風の継承モデルねえ
正直、俺も昔は盲信したことがあって今は恥じている
テンプレートならコンパイラがやってくれることを
自前でdynami

790 名前:c_castなんかやだよ
nested_exceptionとかは仕方ないけどね
[]
[ここ壊れてます]

791 名前:デフォルトの名無しさん [2018/04/02(月) 19:47:22.47 ID:yiGPtloFa.net]
>>761
Javaなんかは内部でそうやって実現してるな。

792 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 20:33:40.82 ID:EffuLSkeM.net]
よそでやれ

793 名前:デフォルトの名無しさん [2018/04/02(月) 22:15:26.67 .net]
>>761
そこはVariant型やろ

794 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 22:26:42.69 ID:pVqQLih90.net]
printfの出力をマルチスレッドで行うことはできないのでしょうか

素人的には
スレッド1 printf("abcde");
スレッド2 printf("12345");

出力 a1b23c4de5

となることを考えたのですが、WinAPIのCreateThreadやC++のThreadでも、CPU使用率はシングルスレッドのときと変わらず、出力もこのようにはなりませんでした

Windows VS2017

795 名前:片山博文MZ mailto:sage [2018/04/02(月) 22:29:05.76 ID:APYGmZJZd.net]
>>766
排他制御されていないCRTを探す方が難しい。

796 名前:デフォルトの名無しさん [2018/04/02(月) 23:11:46.09 ID:ifLgvYYR0.net]
はじめまして。
大学でプログラミング関係の授業を受けるのですが、それの復習、応用などをrpgツクールmvですることは可能でしょうか?

ちょこっと調べた感じプログラミング要素もあるらしいのですが、c言語はあんまり使わないとかなんとかという記事も見られました。

どうせなら楽しく勉強したいので、ゲームを作りながら学習できないもんですかね...。



797 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 23:22:32.32 ID:k8TtPNR/d.net]
>>768
プログラミングを授業で受けるなら、ゲーム制作はツクールMVよりUnityのがいいと思うけど授業内容は進むに連れてむしろツクールMVやUnityのようなのの中身についてになるから復習がてらにはしにくい
モチベ維持にはとても良いと思います

798 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 23:33:36.58 ID:pVqQLih90.net]
>>767
ありがとうございます

799 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 23:41:50.21 ID:335Cb1sP0.net]
バリアント型は何ビットなん?って話になるのがC++。

800 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 04:15:40.51 ID:j/8PevsK0.net]
>>766
目的はどっち??

文字単位で混ぜたい?
高速化したい?

801 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 08:36:15.92 ID:cWIVDHVHa.net]
O_DSYNCって使ったことある?

802 名前:デフォルトの名無しさん [2018/04/03(火) 09:03:18.53 ID:Lqpq4yV4a.net]
ない

803 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 17:34:38.59 ID:IRh8xu7sd.net]
ないな

804 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 20:54:03.05 ID:TORpZXhc0.net]
ないっす
JFS用?

805 名前:デフォルトの名無しさん mailto:sage [2018/04/04(水) 00:52:55.41 ID:Ssb/YhXn0.net]
同期I/Oだそうだ
https://linuxjm.osdn.jp/html/LDP_man-pages/man2/open.2.html

806 名前:デフォルトの名無しさん [2018/04/04(水) 02:32:43.57 ID:h2UR4/YMa.net]
でっていう



807 名前:デフォルトの名無しさん mailto:sage [2018/04/04(水) 11:23:02.06 ID:yTnGZmgQp.net]
同期ってのは、処理が終わるまで帰って来ないって話だ。
下手すっと何秒も帰って来ないから、そこら中が固まる。

808 名前:デフォルトの名無しさん mailto:sage [2018/04/04(水) 15:35:44.60 ID:kI4IT8Vg0.net]
同期というより直列だね

809 名前:デフォルトの名無しさん mailto:sage [2018/04/04(水) 21:14:25.41 ID:rBWooG9b0.net]
動悸I/O

810 名前:デフォルトの名無しさん mailto:sage [2018/04/04(水) 21:17:17.94 ID:iV3ol7kd0.net]
同期/非同期 ブロッキング/ノンブロッキング

811 名前:デフォルトの名無しさん [2018/04/04(水) 22:06:43.40 .net]
同期の絆

812 名前:デフォルトの名無しさん mailto:sage [2018/04/04(水) 22:10:42.29 ID:tDZB1fULM.net]
貴様と俺とは同期のファイル

813 名前:デフォルトの名無しさん mailto:sage [2018/04/05(木) 08:17:37.54 ID:zuAyx/JN0.net]
数値計算手法の一つである陰解法って陽解法とどう違うんだろう?まったく理解が進まん
陰解法での次ステップの状態を計算するには陽解法と違って次ステップでの値が含まれてる関係で行列の方程式?を解かなければならないらしいけど、その方程式で導く値がどう答えに結びついていくのかがわからない
(最終的にはC言語のプログラムに落とし込みたい。陽解法のプログラムはもう作ってあるんで多少なりとも流用できると楽なんだけどそう簡単にはいかんよね?)

814 名前:デフォルトの名無しさん mailto:sage [2018/04/05(木) 12:42:25.18 ID:O2KVno4c0.net]
平たく言うと
100秒後の状態を得るのに途中の一つずつを100個全部求めなきゃいけないのが陽解法
10秒ごとの計算を10回、でいいのが陰解法

陰解法はかんたんに未来を得られる分、行列計算が面倒になる

815 名前:デフォルトの名無しさん [2018/04/05(木) 23:51:02.65 ID:Un4TbCjZ0.net]
これなんですけど、printfのとこの"%2c"で、
" %2c"
" %2c "
など空白を入れることで配列が変わってくるのですが、前に空白と後ろに空白のときの規則性がわかりません。教えて欲しいです。

https://i.imgur.com/QI86not.jpg

816 名前:デフォルトの名無しさん mailto:sage [2018/04/06(金) 00:10:45.42 ID:alNyslUNM.net]
もっと具体的に



817 名前:デフォルトの名無しさん mailto:sage [2018/04/06(金) 05:54:14.00 ID:dKA/BnpB0.net]
>>787
質問にある“配列”てのは、画面に出力される結果のことかな?
表示される文字やその順番は同じだけど、文字の間の空白の数が違う、と。

プログラミング界隈では“配列”って言葉は特定の意味を持った専門用語だし、
問題のプログラムはその意味での配列を使ってないから軽く混乱を招くかと。

818 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 07:48:11.30 ID:mjL64jtF0.net]
配置とかか?自分の試した結果で理解しろよ

819 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 13:51:14.96 ID:Bd1xKzd/0.net]
表示系の2バイト文字の扱い云々な気がする。

820 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 15:06:53.28 ID:bMqQKRLP0.net]
>>787
%2c の部分は右詰めで幅2文字の指定になるが c なので常に1文字の指定になり
引数の int 型数値は unsigned char に変換されて出力される。つまり %2c の部分
だけでスペース1文字と引数で与えた1文字が出力される。(もちろん端末によっては
引数の値によって1文字の扱いにならないかも知れないが、その辺は説明が長く
なるので省略)。

後はその前後にスペースを付け加えて出すかだけの問題。そのプログラムには
改行がないので全て繋がって出力される。(1回も改行を出力しないままプログラムが
終わるので実行環境によっては出力の後に続けてシェルのプロンプトが出るかも
知れない)。

821 名前:デフォルトの名無しさん [2018/04/07(土) 15:19:36.81 ID:vVe4gpjb0.net]
判りにくい日本語だな
判るものもかえって判らなくなるくらいひどい

822 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 16:08:23.10 ID:bMqQKRLP0.net]
じゃあ分かり易く書き換えてくれ。

823 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 19:07:44.77 ID:jn0jIz6fd.net]
まず、%2cは必ず「ブランク*」(*は任意の1文字)になる。
その上で整形用のブランクはprintfを分けて、
ブランク以外の文字とかで試してみろ。

824 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 21:25:17.61 ID:I35+hkP6a.net]
>>745
アセンブラからきたわいCの楽さに歓喜

825 名前:デフォルトの名無しさん [2018/04/07(土) 21:49:40.43 .net]
Visual BasicとかPerlとかから入った自分としては、
Cのほうが簡単に書ける場面もあれば
VBSやVBAがいい場面もあればPerlがいい場面もあって
要はどの言語でも楽しく書ければそれでええやん

826 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 06:56:45.64 ID:oETTfDn00.net]
ワイはbash + sed + cの三点セットや



827 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 19:49:06.28 ID:bmGQy2qQ ]
[ここ壊れてます]

828 名前:0.net mailto: >>787
こんなの試してみたら分かったりしない?(\nは改行)
printf("%c\n",'a');
printf("%1c\n",'a');
printf("%2c\n",'a');
printf("%3c\n",'a');
printf("%4c\n",'a');
printf("%5c\n",'a');
[]
[ここ壊れてます]

829 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 20:21:36.79 ID:qxDYyi6TH.net]
一切出てこない質問者の相手はいらんだろ

830 名前:デフォルトの名無しさん [2018/04/15(日) 15:16:14.29 ID:iG9vZW44M.net]
上の写真を見る限りjが増えたタイミングでprintfで改行コード入れてるっぽいけどそれならiのforが終わったタイミングで改行コード入れれば動くんじゃないですか?
なぜiが8までしか回さないのかわからないですが…

831 名前:デフォルトの名無しさん [2018/04/15(日) 15:38:09.01 ID:MyboI2lC0.net]
しょーもない質問ですいません

vs2017で勉強してるど素人なんですが
コードをミスして修正しようとすると文字が上書きされて
文字を挿入できないん時があるんですが、
なぜでしょうか?

832 名前:デフォルトの名無しさん [2018/04/15(日) 15:41:00.10 .net]
>>802
https://ja.wikipedia.org/wiki/%E6%8C%BF%E5%85%A5%E3%82%AD%E3%83%BC

833 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 15:42:04.62 ID:CIuag2/D0.net]
>>802
こっちで聞けよ

Visual Studio 2017 Part5
mevius.5ch.net/test/read.cgi/tech/1520336504/

834 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 15:50:05.64 ID:ASLFteC6a.net]
上書きモードに誤爆したろ

835 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 15:54:21.86 ID:0gUBaoqj0.net]
>>801
すまんが、どこに改行コードがあるのか、iが8までとは何の事か、
俺にはさっぱり読み取れねぇ
お前とは見えてる世界が違うようだ

836 名前:デフォルトの名無しさん [2018/04/15(日) 16:17:29.71 .net]
>>806
この程度読み取れないようじゃエスパーに向いてないよ

> どこに改行コードがあるのか
予想回答「int c=‘ ‘;」って改行コードですよね?
iが増えるたびに改行コードをprintしたいんですよね?

> iが8までとは何の事か
予想回答:すみません、jの間違いです!



837 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 16:20:53.00 ID:LLURRdNlM.net]
改行は'¥n'
' 'はスペース

838 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 16:30:24.50 ID:bKUHpU4ed.net]
>>806
大丈夫
おれもさっぱりわからん

839 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:02:55.57 ID:+NxoeMlk0.net]
C言語でのステートマシンの設計や、上手なコーディングについて
体系的に学べるお勧めの書籍やサイト教えて下さい。

840 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:08:40.56 ID:+NxoeMlk0.net]
連投で申し訳ないけど
この辺の技術ってC++勉強した方が身に付くのかな?

841 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:10:47.07 ID:7zIgNBcs0.net]
Cはライブラリが貧弱でほとんど自作しないといけない。
C++はその辺多少マシ。Boostとかあるし。

842 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:14:55.01 ID:7zIgNBcs0.net]
至極の名言教えてやるぜ。受け売りだけどな。
コードを効率的にしたり、最強の最適化だったりするそれが一番効くのは書かないことだ。
書くと何らかの負荷になる、コードもグチャグチャになる。
必要なことだけ書いて後は流れに任せるのが上達の道。

843 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:47:03.66 ID:aZbHy3F9d.net]
C++って言うほどライブラリ充実してるか?

844 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:59:11.25 ID:+NxoeMlk0.net]
うーん・・・人によって考え方が違うから正解なんてないし
2chのこのレスだけでは具体的な提示とか難しいよね

本当に必要な処理だけ書いてたら関数長くなって
見通し悪くなったりメンテし辛くなったりしない?

845 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 20:03:21.51 ID:IgQGrpHk0.net]
>>810
ない。
>>811
関係ない。

君は本質的な「プログラミングの腕前」を上達させる為に、体系的に学べる物を探しているんだろ?
ならそれは言語には全く関係ないことは分かるだろ。

846 名前:

そして、そんな物は今はない。なぜならプログラミングは今もまだ発展途上だから。
そもそも歴史が浅い。プログラミングには100年ほどの歴史しかないし、
プログラミング作法が学問として成立してからは50年ほどしか経ってない。
だから現在でも試行錯誤中なんだよ。
それは今更C#/C++/Javaがラムダを採用したことからも分かるだろ。
ラムダ自体はLispの昔からあった。
そしてこれらの言語はそれを知っていて不採用としたわけだが、
今更の方向転換=間違いを認めた、ということなんだよ。
まだそれくらいあやふやなものだって事。

勿論各自が「オレオレ流スーパーハッカー道」を上梓することは出来るのだけど、
実際そういう奴はいないようだ。

とはいえ、結果的に全ての言語が似たり寄ったりになってきているから、
これは成熟してきていることを意味する。
となると、今後は体系化されていくだろうし、そういうサイトや本が現れてきてもおかしくない。
今は>>813みたいな、一言集みたいなのしかないね。
https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/
[]
[ここ壊れてます]



847 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 20:18:14.92 ID:CIuag2/D0.net]
>>814
C に比べたら...
って話だろ

848 名前: mailto:sage [2018/04/15(日) 20:22:19.20 ID:vjxfJMST0.net]
>>816
C++/C#/Java のラムダ式ってラムダ式じゃないと表現できない「何か」を表現する、というよりは、シンタックスシュガーとしてのラムダ式であることが不満です

849 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 20:26:36.28 ID:IgQGrpHk0.net]
>>818
> ラムダ式じゃないと表現できない「何か」
とは何?
俺の理解では、これは存在しない。ラムダ無しでもチューリング完全だったろ。

850 名前: mailto:sage [2018/04/15(日) 20:31:05.37 ID:vjxfJMST0.net]
>>819
Y コンビネーターとか、どうですか?

851 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 20:33:38.79 ID:8Bp5iafSd.net]
>>818
ラムダ式じゃないと表現できない何かって何さ
定義した所の環境を使った第一級オブジェクトなプロシージャではだめなのか?

852 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 20:35:56.05 ID:IgQGrpHk0.net]
>>820
すまんが俺はLisp使いではないから、それについては知らない。
ただ、それが本当に役に立つものなら、C++は数年後に採用するだろうね。

853 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 21:29:24.63 ID:7zIgNBcs0.net]
>>815
一応言っておくと関数分割も必要なら必要なこととして処理されるべき。
ちなみに関数分割したほうが限度はあるけどキャッシュに乗って早くなる。

854 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 23:30:02.09 ID:sXJBpbWg0.net]
この板でチューリング完全て言葉をみるとは思わなかった

855 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 23:59:29.91 ID:L6Qt+I9Ha.net]
だいたい、どう抽象化するのがええのかって話でチューリング完全は関係ないからねえ。
前提としてはそうでないとあかんかも知れんけど。

856 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 00:40:26.76 ID:qQ0bjYjD0.net]
抽象化については「オブジェクト指向」で今のところ決着してるだろ。
これを否定する見解や言語は無いと思うが。



857 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 04:32:33.72 ID:94linQhp0.net]
コンビネータでも実装するか?

858 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 23:38:04.25 ID:qQ0bjYjD0.net]
>>820
>>827
お前ら知ってるのならそのメリットを(出来れば具体的に)書いてみてくれないか?
一応Wiki読んだが、
> 明示的に再帰を書かずに再帰を実現する為に用いる事ができる。
> なお、一般にそういった言語では普通に再帰が使えるので、
> プログラミングにおいてはパズル的なテクニック以上の意味は無い。
> https://ja.wikipedia.org/wiki/%E4%B8%8D%E5%8B%95%E7%82%B9%E3%82%B3%E3%83%B3%E3%83%93%E3%83%8

859 名前:D%E3%83%BC%E3%82%BF
なら、いらねえし、採用されることはないと思うが。
[]
[ここ壊れてます]

860 名前: mailto:sage [2018/04/17(火) 00:06:31.67 ID:gWiyCqxa0.net]
>>828
その wikipedia の解説はちょっと本質からはずれている気がする
「明示的な識別子を含まないで再帰関数が記述できる」くらいか

ラムダ表現を採用している、というのなら不動点コンビネータくらいは記述できないといけないのではないか?
いいかえれば不動点コンビネータを表現できないラムダ表現は「何か大事な部分が欠けている」

ラムダ表現は理論的なモデル(計算可能性を論じるなど)として考案されたもので、実用とか効率とかからは遠く離れている
ラムダ表現を売りにする言語(lisp とか)ならともかく、C#/C++/Java のような実用・効率を求める言語で単に「ラムダ表現ができる」「簡潔だ」くらいの理由で採用されるのは、無目的に言語仕様を拡張しているという理由で個人的には不満

さらにはラムダ表現を老害フィルタがわりに使う者もいたりするが、そういうのには賛同しがたい

861 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 01:21:31.43 ID:RhwG6Rqia.net]
javascriptだとアリって気がするよな。
なぜかは知らんが。まあlisp感あるからか。

862 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 08:33:39.92 ID:dXM64r3I0.net]
javascriptにはなぜかオブジェクト指向が無いからな
コンビネータはC++には早晩実装されそうな気がする

863 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 09:37:19.33 ID:tZLDyJo/0.net]
C++やJavaはクラスベースのオブジェクト指向言語
JavaScriptはプロトタイプベースのオブジェクト指向言語

864 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 23:42:23.84 ID:Yk52Q7IR0.net]
>>829
今の仕様で不動点コンビネータが記述できるのかどうかは俺には分からないが、
焦点はその先で、「記述できたら何がうれしいのだ?」なのだと思うよ。
実用言語で重視されるのは当然「実用性」であって、「学術性」ではない。

逆に、実用性皆無なら、当該部分が削除された状態で採用されるべきだ。
例えばC#は意図的にインラインアセンブラを禁止している。
ヘルスバーグのインタビューがググッても出てこないのだが、心は、
「C#のコードならメンテできます」の為の必要知識量を抑えること、だった。
これは長期的に要員確保の難易度を下げ、結果的にメンテ性を上げる。
これも実用言語では重要だよ。
アメリカでPythonを使うのも、Python自体が良い言語だと思っている奴は皆無で、
「Pythonならみんな読めるし書けるから」だからね。
そのコードが10年以上使われることが分かっているのなら、
10年後に要員確保できない可能性がある言語を選択するのは間違いだし。

Cは、(時代的に無理ではあったが)何でもありの状態で、
文法は極めて簡単だが問題は中で何をやっているかで、読んでみなければ分からない。
「Cのコードならメンテできます」とか、簡単に言うのは無理だろ。
C#はイミフなコード構成(大体はCでも警告が出るもの)も禁止されており、
一応、エンジニアが「C#ならメンテできます」と言えることを目指している。
(上手く行っているとは言い難い部分もあるが)
酷い話だが、Javaは10年間全く進歩しないことによってこれを達成してしまっているし。

だから、話を戻すと、
実用言語においては実用性のある機能は取り入れるべきだが、
実用性がない機能は捨てられるべきなんだよ。
(大は小を兼ねる、多めに採用しとけ、ではない。同様に無駄に構文糖が多いのも問題)
今回ラムダが矮小化されて取り込まれているということなら、
取り込まれた部分は必要だと、切り捨てられた部分は不要だと判断されただけ。
勿論今後覆る可能性もあるけどね。

865 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 23:55:44.13 ID:zXGef27d0.net]
そういうのは自宅の壁に

866 名前: mailto:sage [2018/04/18(水) 00:05:44.11 ID:0XfxQo2f0.net]
>>833
>取り込まれた部分は必要だと、切り捨てられた部分は不要だと判断されただけ。
受動的な態度であればそうなるが、あえて私の感覚を述べるとすれば、

ラムダ式を C++/C#/Java(特にC++)に取り込む価値があったのか?
という点、C++ のラムダ式は operator()() で実現できるし、operator()() のシンタックスシュガーと考えてよい

シンタックスシュガーを全否定するわけではない
「ラムダ式」という偉大な名前に反して、実際にできることは一般的な「ラムダ式」のカバーする領域よりも狭くなっているのを「不満」と感じているだけなのかもしれない



867 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 01:03:16.68 ID:fAoQEHU80.net]
>>835
> C++ のラムダ式は operator()() で実現できるし、operator()() のシンタックスシュガーと考えてよい
一応それが禿がラムダをC++に採用するのに反対している理由だったと聞いたが、
結果的には折れたんだろ。
昨今は「出来ること」よりも「ソースコードの見やすさ」が重視されているし、妥当だと思うが。
比較すると、

1. そもそも operator()()(ファンクタ)では関数に見えない。これが最大のガン。
2. C/C++は階層記述能力が無く、関数内関数が出来ない。このため、
 局所的に関数ポインタを使いたいだけの場合でも上位階層に関数を記述するしかなく、
 結果的にその関数は他からも見える(使える)状態になってしまう。
 匿名関数であれば、そこでしか使っていない事を文法的に保証できる。
3. ファンクタだとインスタンス変数は必ずコピーすることになる。
 ラムダだとおそらく直接掴める場合もあり、この場合はケチれる。
 (ただしこれは実装による)

だから関数内関数(クロージャ付き、最低限その階層の変数は見えるもの=GCC拡張の仕様でいい)があれば、
1,2,3とも達成できるし、要らなかったかな、とも思う。
というか、C/C++とも、関数内関数(階層)は無しで押し切るつもりかよー、とは思う。
ラムダよりこっちの方が必要な気がするのだが。

868 名前:デフォルトの名無しさん [2018/04/18(水) 02:30:28.15 ID:vVNlUpo0d.net]
Cとシェルスクリプトだけで生きていきたいんですが食べていけますか?
またそういった分野らOSSコミッター以外でありますでしょうか?






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

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

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