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


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

C#, C♯, C#相談室 Part92



1 名前:デフォルトの名無しさん mailto:sage [2017/01/28(土) 16:46:53.58 ID:op86qfG/.net]
■Visual Studio 2015 Community & Express (無償の統合開発環境)等はこちら
www.visualstudio.com/downloads/

■コードを貼る場合はこちら
ideone.com/

■前スレ
C#, C♯, C#相談室 Part91
echo.2ch.net/test/read.cgi/tech/1467211515/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。

159 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 21:52:47.57 ID:KBFO5tFR.net]
form動かすのは簡単だけどformのコードを破綻させずに書くのは難しい
少なくとも日本の大半の職業プログラマには無理
悲しいね

160 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 22:19:08.66 ID:ezpXAtZb.net]
動きゃいい

161 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 23:22:45.93 ID:WdGON0E4.net]
最近はウェブでなんとかなるんだが、きちんと本で勉強するべきだと思う。
C++長かったからC#楽勝と思ったけどラムダ式が読めない。
今更独習C#はと思ったが読んでよかった。

162 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 23:40:01.37 ID:nwaeFCKh.net]
ラムダ式使えなくって作りたいものは作れるからな
言語を学びたいのか、プログラミングしたいのか、だな

163 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 00:07:49.88 ID:Hh3bBfOP.net]
ラムダ?

登場してから60年以上たってもLISPが普及してないのが答え。いらん。

164 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 00:27:59.19 ID:N0RLU+6x.net]
俺が使っているのはJavaScriptなんだが、ラムダは超絶便利だぞ。
ただし使わなくても書けるし、いちいちクラスにしてしまう手もあるし、どうにでもなるのも事実だが。

本で学ぶことが必要なのではなくて、いろいろな道具があることを知るのが重要。
今時の言語は全てラムダ使えるんだから、他言語少しでも学んでいればラムダは使えたはず。
その点、C++は古い言語だったのも事実。

ただどう見ても142はそれ以前だろ。
そもそもWPF(というよりHTML)やったほうがいいんじゃないかと思うし。

165 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 00:54:21.20 ID:N9ovtMND.net]
ストラテジー用のインターフェース定義とかいちいちめんどくさい
Func、Action、ラムダでスパッと実装したい

166 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 00:58:33.11 ID:Jm21gNIW.net]
スパッと書く書式、
スパっと書くアルゴリズム、
スパッと書くクラス設計・・・
いつまで経ってもプログラミング始めれず勉強の毎日だぞ

167 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 01:18:47.75 ID:N0RLU+6x.net]
めんどくさい人にはマジでJavaScriptオススメ。
あのデタラメッぷりには最初戸惑ったが、慣れてしまうと相当いい。

ラムダに慣れたいだけなら、スクリプト言語系(JavaScript/Python/Ruby)がマジでいいと思う。
C#のデリゲートって使う前にいろいろ準備が要って面倒だし、
あるのを知ってても使う気にならないでしょ。
俺もVC++しか使ってないころは全く興味なかった。

でもJavaScriptでお気楽にラムダ使いまくった後は、VC++でも使いたくなる。
だってそのほうが楽だと知ってしまったから。
ただ、いちいち型を合わせないといけないのが面倒だったりする。



168 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 01:26:56.21 ID:N9ovtMND.net]
インテリセンス弱いスクリプト系言語は怠け者には向かない

169 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 01:40:08.63 ID:N0RLU+6x.net]
まあIDEに関してはC#が一番上なのだろうね。それは思うよ。

170 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 01:45:57.08 ID:Hh3bBfOP.net]
winform使うにしもてwin32の知識は必要。結局win32ラップだし。

171 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 01:46:38.10 ID:FbflVc2K.net]
ラムダはインテリセンスあってこそやね。

172 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 02:39:26.60 ID:ByE41wZl.net]
これからC#でGUIするんならWPFにしたらいいんじゃない。フォームは古いし。
但し、WPFの本はない、あるけど使えないと云うか価格に見合ってない。いい本あったら教えてもらいたい。

173 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 07:34:49.62 ID:JxD18xMy.net]
WPFやってみたけどやっぱりformのほうがお気楽だから戻ってきてしまった

174 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 07:54:43.41 ID:fA+zhTaO.net]
javascriptのラムダって例えばどんなヤツよ?

175 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 08:03:07.91 ID:vx9FCuam.net]
>>1

176 名前:70
今のJavaScriptは (x, y) => x + y のようなC#と全く同じ構文の(というかC#をそのまま真似したんだろうけど)ラムダが使えるよ
もちろん従来の function(x, y) { return x + y; } でもいいし
[]
[ここ壊れてます]

177 名前:デフォルトの名無しさん [2017/02/25(土) 10:39:52.17 ID:TcOntMIt.net]
JSだとインテリセンスが弱い?TypeScript使おうぜ



178 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 12:04:24.91 ID:N0RLU+6x.net]
JavaScriptのラムダがC#を真似したと言うのは自意識過剰すぎ。(短縮記法の()=>は真似してる)
インテリセンスはMS発なんだしはっきり言えば全員C#を真似しているからVS環境のTSではよくて同等まで。

JavaScriptは文法的な意味で関数とラムダを区別してない。
だからさらっと書いてそれだけ。

var count = 0;
var count_up = function(){count++;};
var show_count = function(){console.log(count);};

count_up();
count_up();
show_count(); // 2

見りゃ分かるが具しか書いてない。だから論理的にこれ以上お手軽なのはない。
(短縮記法は出来るがあれはタイプ数がケチれるだけ)
ついでに階層もクラスも関数で記述するというデタラメッぷり。
だからそもそも「ラムダなんて使いません(キリッ」みたいなことが出来ない。
(階層がラムダ)

知らなければ意味不明だと思うが、とにかくそういう世界だ。
その状況で慣れると、心理的な障壁が取り除かれる。
ラムダ嫌いって要するにこれだろうし。

179 名前:デフォルトの名無しさん [2017/02/25(土) 12:12:40.17 ID:TcOntMIt.net]
ES6ならclass構文(内部では関数に変換されるけど)あるからかなり楽になったぞ

180 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 12:24:18.16 ID:S4wbN3RD.net]
ラムダは真似というか普通に輸入だろ
ES6の策定にはMSも主導的な立場のメンバーとして当然参加してるし

181 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 12:26:33.18 ID:IfKbzrsT.net]
>>173はjavascriptやったことない奴でも初見で何してるか分かる
でもこんなの書かれたら初見で見破るの無理でしょ
var res = ((Func<int, int, bool>)((i, j) => i == j))(5, 3);

ラムダ嫌いはラムダが嫌いなんじゃなくて、読みにくいラムダが嫌いなんでしょ
「ラムダなんて使いません(キリッ」じゃなくて「読みにくいラムダなんて使いません(キリッ」なんだよ

182 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 12:31:25.09 ID:N0RLU+6x.net]
>>174
あんなもん所詮慣れ。俺は従来のJavaScriptの構文でも苦労してない。
そしてラムダも所詮慣れ。慣れればどうって事は無い。(難しくは無い)
ただし使わなくても実装できるのは事実で、わざわざ慣れる必要があるかは微妙。

183 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 12:45:06.30 ID:S4wbN3RD.net]
>>176
関数の即時評価はJSでは非常によく使われるテクニックだよ
C#のラムダなんて、本来の副作用がない使い方をするのがほとんどだから可愛いもんだ
JSではガンガン副作用書いていくから超複雑だよ

184 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 13:25:03.75 ID:Hh3bBfOP.net]
>>176
パラダイムが違うものごっちゃにして何がしたいんだ?
やたらカタカナ使う田中康夫やルー大柴の日本語みたいなものだ。

185 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 13:29:41.99 ID:N0RLU+6x.net]
>>176
それは型情報を付加しようとしているから見た目複雑になる。
型情報が無いJavaScriptなら以下になる。

var func = function(i,j){return i==j;};
var res = func(5,3);

もちろん1行でも書けるが、これはJSer以外にはすこぶる評判が悪い。

var res = (function(i,j){return i==j;})(5,3);

そしてこれをアロー関数(短縮記法)で書いたらC#の型情報を落としたものと同じになる。

var res = ((i,j)=>i==j)(5,3);

そもそも「お手軽にやろうぜ」というノリなら型情報が無いほうがよく、
その点がC#だとどうに

186 名前:焜tィットしない。


ただしラムダ使い全般が馬鹿なのか、
あるいはJavaScript含めた関数系一般に言える傾向なのかは定かではないが、
おかしな記述で余計複雑にする馬鹿、まさに「木を見て森を見ず」はよく見かける。
奴らは「木」つまり一箇所の記述を最小限にすることに異常にこだわり、
「森」つまり全体を最小限にすることを考えていない傾向がある。
だからラムダ(キリッな奴が出してくるコードが糞なことも多く、
これがラムダを知らない連中にとってラムダを学ぶ価値があるように見えない理由だと思う。
対してオブジェクト指向は「森」を「林」に小分けする手法だから、
オブジェクト指向をきちんと出来ている連中から見れば余計に馬鹿に見えてしまうし。
[]
[ここ壊れてます]

187 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 13:31:51.44 ID:Hh3bBfOP.net]
これだからemacs使いは嫌われるんだよ。



188 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 14:43:31.03 ID:Qzh8dVTL.net]
関数呼び出しでデリゲート渡すところをラムダ式で書いたりするのが便利だし、プログラムが小さくなり、関連ある記述がまとまり、慣れると読み易い。
まあ、伝統的と云うか、平均以下のレベルに合わせたコーディング規約が幅をきかせているプロジェクトでは忌み嫌われる。

189 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 15:18:03.16 ID:IvVV1H8V.net]
var res = (5 == 3)

それ関数使わなくてもいい例だから
もうちょい違うのなかったかな

190 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 15:39:38.73 ID:9TfgDVOx.net]
保守性や可読性でラムダを嫌う人がいるのはまあ良いんだけど
経験的にそういう人のコードが優れてるかっていうとそうでもない
同じような構造のループ処理を大量生産したり
try catch log出力を延々と全てのメソッドに書いたりする

191 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 15:44:53.00 ID:3ZNX7OqZ.net]
>>183
今日のとんちきレス大賞

192 名前:デフォルトの名無しさん [2017/02/25(土) 15:46:20.53 ID:TcOntMIt.net]
ラムダは静的なダックタイピングにするべきだったと思う
長くなる時はエイリアス設定するとかにして

193 名前:デフォルトの名無しさん [2017/02/25(土) 15:46:55.92 ID:TcOntMIt.net]
>>183
ガイジかな?

194 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 16:24:58.90 ID:N0RLU+6x.net]
>>182
つかそういう問題じゃない。C++なら例があるが。
> auto 型推論とラムダ関数を使用すると、コードをすばやく記述して、それを引き締め、より的確に把握することができます。
> https://msdn.microsoft.com/ja-jp/library/hh279654.aspx
この2つのコードで下のほうがいいと思えるかどうかだよ。

正直、俺にはどうでもいい範囲だよ、これは。
こんな局所的部分で活用(キリッしたところで大して意味が無い。
確かにコードは減るけど、バグる確率が減るわけじゃないでしょ。
そして関数型()の連中が出してくる「ラムダの優位性(キリッ」なコードはほぼ全てこの類であり、
巨大プログラムを分割して直接的に単純化する「オブジェクト指向」と比べて、訴求力に乏しい。

理由は簡単で、そもそもラムダは「糖衣構文」でしかないから。
実体は「関数ポインタ+変数」であり、
Cなら構造体ポインタを引数に取る関数、
C++なら関数オブジェクトまたはクラスで表現できる。
(見にくいが元々記述できる。これがストロウストラップがラムダ導入に反対していた理由だと聞いた)
だからJavaScriptの文法が関数=ラムダ=階層=クラスなのも自然ではあるし、
Rubyが匿名関数(ラムダ)を匿名クラスで表現するのもこのため。

結局、ラムダを導入したところで出来ることは増えず、本当の意味での「エレガント」なコードにはならない。
ところが関数型()の連中は「エレガント」=「短い」or「ラムダ使ってる」と勘違いしている馬鹿が多くて、
上記URLのコードなら「下側がイイ!」「下側じゃ無いと許さない!」とか言い出すからおかしくなる。
「自転車置き場の議論」と同じで、馬鹿なりに見える範囲で考えたんだろうが、所詮馬鹿でしかない。

プログラミングにおける「エレガント」は数学と同じで、
「こう考えればこんなに簡単に解けるんだ!」であり、
糖衣構文でしかないラムダは本質的には全く効果が無い。
ただし、俺自身も慣れる前はラムダを選択肢に入れていなかった=思考を狭めていた。
これはまずいので、通常の選択肢として考えられるほどには慣れておく必要はある。
ただ、それ以上の意味は無い。

195 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 16:25:31.63 ID:N0RLU+6x.net]
余談だが、JavaScriptのプロトタイプとダックタイピングはこの意味で面白い。
出来ることが増えているので、直接的にもっと「エレガント」を探求できる。
以前話題になっていた拡張メソッドの継承もJavaScriptなら最初から出来る。

ただし、何でもかんでも出来ればいいものでもなく、馬鹿に使わせたら余計におかしくなるのも事実。
その点、C#はいいバランスを目指していていい。
ただしこの意味で「封印済み」の場所もあるから、
C++やJavaScript等「何でもあり系」言語に親しむのも悪くないと思う。

196 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 16:30:23.41 ID:IvVV1H8V.net]
>>185,187
ほう? じゃ>>176のこのコードがどういう場合に有用なのか教えてくれ
>var res = ((Func<int, int, bool>)((i, j) => i == j))(5, 3);

197 名前:デフォルトの名無しさん [2017/02/25(土) 16:39:02.64 ID:TcOntMIt.net]
>>190
C#とJSのラムダの比較の為に出しただけであって、有用なのかは今関係ない



198 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 16:39:23.68 ID:3ZNX7OqZ.net]
>>190
誰も処理内容の話なんかしてないぞ
みんなはアメをくるむ包装紙の話をしてるのに君だけアメの味を話題にしてる

199 名前:デフォルトの名無しさん [2017/02/25(土) 16:41:51.21 ID:TcOntMIt.net]
例え上手い

200 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 17:09:31.56 ID:fb/41uG4.net]
>>190
まじasp

201 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 17:21:54.68 ID:WB0pRnLv.net]
変更されることがない前提のList<int>を複数のスレッド
でforeachするのは問題があるでしょうか。
やっぱりlockすべき?

202 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 17:22:56.07 ID:N0RLU+6x.net]
>>186
コードを最小限にするためには
・型=なし
・多重継承=あり
・ダックタイピング=あり
がいい。この点JavaScriptは、型無し、多重継承は手動で可能、ダックタイピングあり、なので向いている。

一方C#は、型あり、多重継承禁止、ダックタイピングなし、なので
「コード量」よりは「きっちり書くこと」を目指しており、
「手抜き」が主な目的のラムダとどうにも相性が悪い。
ここでダックタイピングだけ導入しても余計に混乱すると思う。

つかね、C#って「一文字でもケチりたい」奴用の言語ではなくて、
「型なし言語では堅牢なアプリは作れない」と考える連中用の言語だし。

203 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 17:30:35.48 ID:IvVV1H8V.net]
はあ?
包装紙の不要な物を包装紙でくるんでこんな包装の仕方はダメじゃって言ってる人に
包装紙の良し悪しについて平然と議論しつづける神経のほうがわからんよ

204 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 17:43:27.22 ID:Hh3bBfOP.net]
C#は業務系で使われたいのか、やっつけアプリ用に使われたいのかって話だ。

業務系で使われたいならシンタックスを増やすなって話だが、どうやら後者らしいので、c#はキティ用言語といえる。

205 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 18:38:47.74 ID:ByE41wZl.net]
>>195
lock不要に一票。
追加削除ないなら配列じゃダメなの。

206 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 18:53:44.75 ID:ByE41wZl.net]
C#はちゃちゃとプログラムにも業務にも使える優れもの。
シンタックス変えてない。拡張だろ。
LInqなんか追加されてホント便利になってる。

207 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 19:22:21.24 ID:FbflVc2K.net]
>>180
めっちゃ読みづらい。
いやスペースがないせいだけどw



208 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 20:01 ]
[ここ壊れてます]

209 名前::05.66 ID:lRvoFyV9.net mailto: >>195
不要
もし後で変更する可能性があるならReaderWriterLockSlim使っとけばいい
[]
[ここ壊れてます]

210 名前:デフォルトの名無しさん [2017/02/25(土) 20:48:05.07 ID:kVUREvkV.net]
>>199,202
ありがとう。
foreachによって実は内部的な変化が行われていたらまずいのではと
考えていました。

211 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 20:49:00.75 ID:IvVV1H8V.net]
>>195
AsReadOnly()とか使って使う側が変更しないことを保証しといたら?
ImmutableList<T>を使うともっと堅い

212 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 03:14:38.88 ID:0YrJqBhk.net]
ID:N0RLU+6xはもっと要点をまとめて端的に書き込めよ・・・
お前の言う「ラムダの優位性(キリッ」をC#で言ってる人なんてそうそう見ないぞ

変にプログラミング言語一般のラムダについて述べるせいで論点がブレブレだ

213 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 04:03:21.89 ID:0YrJqBhk.net]
日本語が苦手なのかもしれないが、「文法的な意味で関数とラムダを区別してない」とか「関数=ラムダ=階層=クラス」とかはよくないでしょ
初心者にjavascriptの関数が全てラムダみたいな誤解を与えかねない

>Rubyが匿名関数(ラムダ)を匿名クラスで表現するのもこのため。
Rubyの匿名関数(無名関数の方が一般的な呼び名だけど)は匿名クラス(無名クラスの方が一般的だけど)じゃなくて「Procオブジェクト」

214 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 10:41:00.28 ID:/Q8k6Dmd.net]
C#のラムダ式は、どっちかというと式木が目的で導入されたんじゃないの?

てか、いい加減スレ違いでしょ、この話題。

215 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 11:19:59.83 ID:TMS4+8Av.net]
>>207
式木はdynamicと関係あるだろ
ラムダ式はLINQのメソッド形式では必須

216 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 11:26:13.98 ID:a7NPBA4e.net]
いやメソッド形式では(事実上はラムダ式必須であっても)匿名メソッドでも代用はできる
式木は意味的に匿名メソッドが式にならないからラムダ式が必須だよ
匿名メソッドで式にできるように言語拡張しても良いけどそれってラムダ式そのものだし

217 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 11:33:24.17 ID:asTjjGDY.net]
どうでも良いがJavaScriptのfunctionとアロー関数は
等価じゃないぞ。
乱用してバグこしらえるパターンだな。



218 名前:デフォルトの名無しさん [2017/02/26(日) 11:36:25.80 ID:H7bo/69j.net]
>>210
functionだとself定義しないといけなくて面倒だけどアローは楽だよな

219 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 11:36:30.05 ID:Q2GAsSXo.net]
式木の説明読んでみたが、言ってることが関数型()の連中と全く同じでワロタ

220 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 11:44:07.89 ID:LLZCcrhN.net]
>>208
式木はもともとdynamicとは全く関係ないよ
DLRプロジェクトで動的コンパイル用のASTが作られたが、System.Linq.Expressionsと被ってるということでそれを拡張する形で統合された
結局DLRは頓挫してコアの部分だけがCLRに導入され、そこに乗っかって実装されたのがdynamic

221 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 11:49:23.90 ID:0YrJqBhk.net]
>>212
(多少関連のある使い方ができるかもしれんが、)全然違うだろ
どこを読んだらそんな変な読み取りができるんだ?

222 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 11:59:43.17 ID:LLZCcrhN.net]
>>212
式木やdynamicのあたりは今時のミーハーな関数型()とはだいぶ色が違うと思う
LispのマクロとかMOPとかの影響を受けた、かなりガチなマニアックな設計思想の

223 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 12:33:17.61 ID:Q2GAsSXo.net]
>>215
てか式木っていったい何がやりたかったの?
超高速Evalか?

224 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 12:57:05.99 ID:LLZCcrhN.net]
>>216
式木の目的は、C#で書かれた式を独自に解釈して処理すること
例えばラムダ式を変換してExcelの数式を生成したりできる
文字列を使うのに比べて解釈が楽、型や構文の静的チェックが可能、インテリセンスが効くといった利点がある

225 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 13:49:21.90 ID:Q2GAsSXo.net]
>>217
おそらくLISP信者も同様にそのポテンシャルに魅了されているのだと思うのだが、
具体的に何に活用できるのだ?
何にでも使えそうだが、いざ何に使えば「他では達成できないほど」の結果を引き出せるのか分からない。

> 例えばラムダ式を変換してExcelの数式を生成したりできる
なるほど素晴らしい。しかしExcelシートを別に用意した方が楽だし、
通常の数式ならC#側で「テキスト」として出力するのも難しくは無い。
(もちろん出力パーサの再開発になるから、MS謹製自動変換のほうが楽だが、その程度)

> インテリセンスが効くといった利点がある
これは利点ではあるが、主な目的のうち大半は「手打ち」ではないだろうから、この際あまり関係ない。

> 文字列を使うのに比べて解釈が楽、型や構文の静的チェックが可能
これを「ユーザ側」の利点とするなら、ユーザー側でのパーサ生成、
つまりメタメタプログラミングを想定していることになるが、そうなのか?

結果的にLISPで成功したプロジェクトといえるのはemacsのみだ。
対してCはほぼ全てのPC世界を再構築しているに近い。
理由付けはいろいろ出来るだろうが、結果的に誰もLISPを選ばなかったということではある。
他でもっと簡単に目的を達成できる方法があるのなら、誰もより複雑な方式での解決なんてしない。
結果的に、何でも出来るLISPは誰にも使われなかった。式木の雰囲気も見た目これに近い。

ExcelはExcelで、C#はC#で、で誰も文句は無い。
(その分簡単になっていて、Excelは非プログラマでも十分使える)
そこを統合するのは学術的には意味があるが、現実的には意味が無い。
HaskellやPrologみたいにアカデミック向けなら分かるが、C#はそうではないし。

226 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 14:12:54.65 ID:AZYnfb42.net]
メタプログラミングで便利
以上

227 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 14:23:30.18 ID:Q2GAsSXo.net]
しかし現実的には、通常のプログラミング:メタプログラミング=100:1、位の分量しかないだろ。
どうでもいい箇所の高速化をやってる馬鹿と同じ。そこにこだわっても効果ないよ。



228 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 14:36:14.18 ID:0YrJqBhk.net]
>>220
リフレクションの代わりにして高速化するとかの目的で結構使われてる
アプリケーションで使うよりもライブラリの内部とかで使うことが多い

229 名前:デフォルトの名無しさん [2017/02/26(日) 14:37:28.54 ID:bMNV8RU5.net]
一度時代から消えたような無用な機能を言語オタクが復活させてみんな迷惑してるいう状況。

230 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 14:38:28.84 ID:BapL/ZVi.net]
他言語からの移植が楽
可読性悪くなるから使うことはないな

231 名前:デフォルトの名無しさん [2017/02/26(日) 15:03:16.38 ID:bMNV8RU5.net]
はるか昔、C++ vs Objective-Cの戦いで瞬殺されたObjective-Cを
コード書けないジョブスが引っ張り出してきて、みんなが迷惑してるレベル。

それがC#とヘジ。

232 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 16:19:53.46 ID:cWe1Zi+O.net]
C++が勝ったのはCとの互換性で、ジョブズがObjective-Cを選んだのはC++が美しくなかったからだと思う。
しかし、O-CはAppleだけだから、やらされる身からすると迷惑なんだろう。

233 名前:デフォルトの名無しさん [2017/02/26(日) 16:33:51.40 ID:bMNV8RU5.net]
はるか昔、BASIC vs Pascalの戦いで、激戦の末、BASICが市場を制した。
にも関わらず、BSDにOSX、iOSなどと名前詐欺するように、PascalにDelphiなどとかっこいい名前をつけて売り出した男がいる。

ヘジである。

とある事業でMSの独占だと将来に保守するリスクが高まるのでDelphiを採用した開発があった。
Delphiは一瞬市場で人気は出たもののすぐに消えた。あのとき大量に作られたコードは今も保守されてるんだろうか。

市場から一度消えた古い技術を引っ張り出す輩はほんと迷惑である。

234 名前: ◆QZaw55cn4c mailto:sage [2017/02/26(日) 17:17:53.27 ID:1LlUyF33.net]
pascal はいい言語だよ,LL(1) なんて美しいじゃないか

235 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 17:26:34.35 ID:cWe1Zi+O.net]
アルゴリズム+データ構造=Pascal
これが私の原点だ。
でも、生活の為に、いまだCやってる。
ヘッダファイルが面倒、C#はヘッダファイルなくていいね。

236 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 08:50:13.59 ID:DR1RgDtx.net]
式木は実行時コンパイルできるという利点もあるよ
実行時コンパイルはシリアライザの高速化に使用されている

237 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 12:29:20.61 ID:4XW6lmAf.net]
ラムダ式使ってたけど、>>104みたいな理由で自分以外保守できなくなったから.NET2.0時代の表記に戻したな
いくら便利でも周りが使う気無いなら意味ねえわ・・・



238 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 13:39:39.07 ID:v0Y8eGO4.net]
技術者の1割しか理解してないものを仕事で使用できるわけがない。
C#とVBでVBが選ばれるのも仕方がない。仮にC#なんか選んでしまうと一部の技術者に負担がすべていく。
するとC#にしろ、ラムダ、LINQOKにしろ、WPFにしろと言ってた輩が無責任に最初に転職していく。
残された奴らじゃとても保守は無理。

239 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 13:47:01.73 ID:BO1ZZ84r.net]
便利だから楽だからって言い張るから導入した途端
その人が辞めていく法則

240 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 17:10:34.62 ID:ToRYKJiY.net]
そういうのはマ板でやってくれ

241 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 18:55:42.34 ID:bS39cZCs.net]
業務では言われたことを適当にこなして定時で帰れば良い
お家に帰ってからが楽しいプログラミングの時間だ
誰にも足を引っ張られないで好きなことをできる
悲しいね

242 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 19:12:51.30 ID:bir6oLGv.net]
>>230-232
俺はそれでいいと思うけどね。
結果的に「従来記法しかしない会社」と「意識高い記法をする会社」で市場で勝敗つければいい。

本当に「生産性が高い」のなら相手を容易に駆逐できるはず。
出来ないのならその程度だってこと。
まだらになっている方が生産性が悪い。分離して競わせるのが正しい。

多分、ラムダ、LINQ、WPFには相手を駆逐できるほどのインパクトは無い。
対してメモリ保護、GCはかなり劇的に楽になるのでCはシェアを落としつつある。
ちなみに俺はHTMLはフォーム/WPFを駆逐できると思う。

243 名前:デフォルトの名無しさん [2017/02/27(月) 19:15:16.04 ID:Ftr1v2iE.net]
ラムダとリスト操作系関数は少し慣れればかなり便利
WPFは、WEBフレームワークに似てるからそっち系の人は良いのでは

244 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 19:17:31.38 ID:Ehytdfgf.net]
>>235
ごちゃ混ぜで語りすぎてる。
ラムダ、LINQなんてちょっと学習するだけやん。
請負、派遣業界に無理なのは分かるがw

245 名前:デフォルトの名無しさん [2017/02/27(月) 19:47:36.34 ID:RCbBwD75.net]
書籍代は幾ら有っても足んね〜

みんなは、どうしてる?

図書館は、全くと言って良いほどロクな書籍が無い
後はグーグル書籍で、漁る位だし……。

246 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 19:55:43.62 ID:GaZbolX8.net]
APRESSから買っている

247 名前:デフォルトの名無しさん [2017/02/27(月) 20:15:06.48 ID:RCbBwD75.net]
ほむ



248 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 20:17:13.08 ID:zuqOpmfm.net]
>>238
MSDNのリファレンスを全部プリントアウトしたほうが安いんじゃね?

249 名前:デフォルトの名無しさん [2017/02/27(月) 20:46:05.22 ID:RCbBwD75.net]
>>241
その発想は無かった

因みに get setの使い道が微妙なんだけど、
具体的な使用例とか、教えてくれ><

250 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 20:55:40.51 ID:SheqW2pp.net]
>>242


251 名前:プセル化 []
[ここ壊れてます]

252 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 21:04:36.29 ID:bir6oLGv.net]
>>236
WPFざっくり見てみたが、HTML/CSS/JavaScriptの再開発でしかない。
時期的な問題もあったのだろうが、
ここまで似せるなら最初からHTML/CSS採用しろよ、とWEB系からは見えるだろう。
WEB系の連中を引っ張り込みたいのなら、今からでも全面採用して、
HTML/CSS/C#出来るようにするべきだろう。

見た目、WEB系はC#よりも新技術の使い捨てが酷くて、余裕が無い。
彼らにとってWPFは簡単だが、学ぶのが面倒であり、その価値もないから、
Electron(HTML/CSS/JavaScript)でデスクトップアプリを作る方を選択するだろう。

面倒だから学ばない、というのはラムダもLINQも同じ。
元々無くても出来るのだから、それで苦労してない人には同期付けが無い。
その辺がメモリ保護/GCと根本的に異なる。

253 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 21:14:29.75 ID:Ehytdfgf.net]
>>244
相変わらず馬鹿だな。

254 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 21:19:28.45 ID:QfkRDmsT.net]
ざっくりじゃなくて、もう少しちゃんと使って理解してから評価しなよ。

255 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 21:22:26.99 ID:aCjjvIHm.net]
15年ぐらい前htmlviewでui作るの流行ったな。もうすっかり見かけなくなったがw

256 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 21:34:20.63 ID:sVGz7y9C.net]
html5ならUWPにあるから良かったじゃん

257 名前:デフォルトの名無しさん [2017/02/27(月) 21:39:40.07 ID:Ftr1v2iE.net]
>>244
Electronは遅すぎる



258 名前:130 mailto:sage [2017/02/27(月) 22:16:01.34 ID:8x434lFb.net]
>ここまで似せるなら最初からHTML/CSS採用しろよ、とWEB系からは見えるだろう。
>WEB系の連中を引っ張り込みたいのなら、今からでも全面採用して、
>HTML/CSS/C#出来るようにするべきだろう。

ASP.NET MVCってまさにこれ?

259 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 22:49:12.00 ID:bir6oLGv.net]
>>248
> UWP
名前しか聞いた事無かったけど、これは良いね。
HTML/JavaScriptならElectronと同じコンセプトが可能か?

HTML/C++で使いたいんだが、この組み合わせは無理なのか、、、






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

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

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