http://pc12.2ch.net/test/read.cgi/tech/1274015781/l50 の継続スレのかたわれです。
低水準言語にこだわる人は「低水準言語を開発したい」のほうへどうぞ。
探検
新言語を開発したい
■ このスレッドは過去ログ倉庫に格納されています
2010/05/30(日) 21:52:01
272デフォルトの名無しさん
2012/10/31(水) 22:03:32.83 >>269
> 例えば、関数の引数なんかが何でも代入できたら便利って思わない?
例えば、fooという関数があって、intとstringを引数に取れるとする。
それはfoo(int value)とfoo(string str)の2つの関数を定義するのと同じ事。
オーバーロードって呼ばれる機能のことね
君がそういう意図で書いたのではないということはわかっているが、
つまり、「関数の引数なんかが何でも代入できる」というのは
オーバーロードを備えている言語、Javaなども当てはまる。
> 例えば、関数の引数なんかが何でも代入できたら便利って思わない?
例えば、fooという関数があって、intとstringを引数に取れるとする。
それはfoo(int value)とfoo(string str)の2つの関数を定義するのと同じ事。
オーバーロードって呼ばれる機能のことね
君がそういう意図で書いたのではないということはわかっているが、
つまり、「関数の引数なんかが何でも代入できる」というのは
オーバーロードを備えている言語、Javaなども当てはまる。
273デフォルトの名無しさん
2012/10/31(水) 22:08:49.25 そう、オーバーロードやテンプレートで関数の引数は
なんでも代入できるってのは実装できる。
ここで比較するべきことは、
「オーバーロードやテンプレートを使ってなんでも代入できる」と
「型がないがゆえになんでも代入できる」の2つの違い。
型が違えば、処理もわずかながら違ってくる。
つまり、後者は引数に何が入っているかで処理を切り替えないといけなくなる。
そして想定外のものが入っている可能性もあるので、引数チェックも必要になる。
つまり、後者は劣った方式。
なんでも代入できるってのは実装できる。
ここで比較するべきことは、
「オーバーロードやテンプレートを使ってなんでも代入できる」と
「型がないがゆえになんでも代入できる」の2つの違い。
型が違えば、処理もわずかながら違ってくる。
つまり、後者は引数に何が入っているかで処理を切り替えないといけなくなる。
そして想定外のものが入っている可能性もあるので、引数チェックも必要になる。
つまり、後者は劣った方式。
274デフォルトの名無しさん
2012/11/01(木) 07:35:35.91 Javaにはジェネリクスもあるのに
何でオーバーロードで例えるんだよ
ほんとに分かってんのか?
何でオーバーロードで例えるんだよ
ほんとに分かってんのか?
275デフォルトの名無しさん
2012/11/01(木) 08:12:04.58 型無しの変数だけ、型名にvarと宣言させれば、
オーバーロードと同時に使えるかもしれない
オーバーロードと同時に使えるかもしれない
276デフォルトの名無しさん
2012/11/01(木) 08:31:08.44 メソッドのオーバーロードの話をしているのか
型システムでいう多相型の話をしているのか
(動的型付け言語で見られる)型の無い変数の話をしているのか
型システムでいう多相型の話をしているのか
(動的型付け言語で見られる)型の無い変数の話をしているのか
277275
2012/11/01(木) 12:04:05.92 多相型を予約語一つで実装しながら、オーバーロードも実装したいという話。
278デフォルトの名無しさん
2012/11/01(木) 19:51:37.37 多相型って、OCamlとかにあるアレのこと?
それともVBのVariantのこと?
それともVBのVariantのこと?
279デフォルトの名無しさん
2012/11/01(木) 21:26:13.92 OCamlとかのアレのことです
280デフォルトの名無しさん
2012/11/01(木) 21:57:59.59 >>271
C++のtemplateは、
・クラスごとに実装を別に出来る
(実装を別にしたくない場合は、templateでなくvirtual関数を駆使する)
・クラスだけでなく整定数ごとに別の実装を持てる
・再帰的に定義できる (コンパイル時に原始帰納関数が計算できる)
という特徴がある。
後者2つのせいでtemplate meta-programmingが炸裂した。
C++のtemplateは、
・クラスごとに実装を別に出来る
(実装を別にしたくない場合は、templateでなくvirtual関数を駆使する)
・クラスだけでなく整定数ごとに別の実装を持てる
・再帰的に定義できる (コンパイル時に原始帰納関数が計算できる)
という特徴がある。
後者2つのせいでtemplate meta-programmingが炸裂した。
281デフォルトの名無しさん
2012/11/01(木) 22:18:20.16 多相型を実現する機能とメタプログラミングを実現する機能、
それぞれ分かれてる方が良いんじゃないかな
それぞれ分かれてる方が良いんじゃないかな
282デフォルトの名無しさん
2012/11/01(木) 23:18:52.66 >>277
型クラス
型クラス
283デフォルトの名無しさん
2012/11/01(木) 23:21:02.71 多相とオーバーロードって
関数のエントリポイントが
同一か型ごとに分かれてるかの違いだろ?
関数のエントリポイントが
同一か型ごとに分かれてるかの違いだろ?
284デフォルトの名無しさん
2012/11/01(木) 23:33:37.05 型推論しないなら、多相型とオーバーロードの共存も難しく無いよ
285デフォルトの名無しさん
2012/11/02(金) 00:07:04.19 >273
そういうのはダックタイピングで対応できる。
完全には行かないけどね。
そういうのはダックタイピングで対応できる。
完全には行かないけどね。
286デフォルトの名無しさん
2012/11/02(金) 01:42:15.26 C++のtemplate、メタプログラミングは発展途上だと思う。
もっと使い易くしてほしい。
もっと使い易くしてほしい。
287デフォルトの名無しさん
2012/11/02(金) 02:25:21.11 それはconceptでFA.
288デフォルトの名無しさん
2012/11/02(金) 08:09:55.62 ダックタイピングってインターフェースを
定義しないインターフェース。
型安全性をなくしたインターフェースなんだよね。
定義しないインターフェース。
型安全性をなくしたインターフェースなんだよね。
289デフォルトの名無しさん
2012/11/02(金) 09:58:23.85 いやインターフェイスだけを定義したといった方がいいだろ。
型安全がないから例外は必須だよね
型安全がないから例外は必須だよね
290デフォルトの名無しさん
2012/11/02(金) 13:55:01.46 テンプレートもインターフェースも多用すると
マクロ展開多用したコードみたいになる。何事も
バランスというか節度は大切やね
マクロ展開多用したコードみたいになる。何事も
バランスというか節度は大切やね
291デフォルトの名無しさん
2012/11/03(土) 01:39:59.40 で、その多層型のメリットは何?
292デフォルトの名無しさん
2012/11/03(土) 07:45:42.44 map :: (a -> b) -> [a] -> [b] とか、もし多相型が無かったら
全ての型a,bに対してmapを定義する必要があるじゃん?
動的型と違うのは、map f xs としたときに
fの引数の型とxsの要素の型が一致してないと
型エラーになるところ
全ての型a,bに対してmapを定義する必要があるじゃん?
動的型と違うのは、map f xs としたときに
fの引数の型とxsの要素の型が一致してないと
型エラーになるところ
293264
2012/11/03(土) 08:17:49.03294デフォルトの名無しさん
2012/11/03(土) 10:51:58.53295デフォルトの名無しさん
2012/11/03(土) 10:59:01.58 >>294
Javaのgenericsは多相型(パラメータ多相)
Javaのgenericsは多相型(パラメータ多相)
296デフォルトの名無しさん
2012/11/03(土) 11:05:05.30 JavaのGenericsはびっくりするくらい不完全なゴミだけど
一応多相型
一応多相型
297デフォルトの名無しさん
2012/11/03(土) 15:12:20.67 そもそも、多相型を使うメリットは何?
298デフォルトの名無しさん
2012/11/03(土) 15:56:29.22 型ごとに関数やクラスを作らなくていいし、
対応している型が何かが、関数の定義としてすべて簡単にわかる。
対応している型が何かが、関数の定義としてすべて簡単にわかる。
299デフォルトの名無しさん
2012/11/03(土) 18:05:16.70 コードを書く量が減るってことか?
対応してる型が何かが分かるというのは、型ごとに作る場合も一緒だろ?
それは多相型のメリットではない。
型により挙動が変わるコードを書くことができるので便利ということなら
逆に動作が分かりにくいコードを書けることにも繋がるので
邪魔な機能という気がするがなあ。
対応してる型が何かが分かるというのは、型ごとに作る場合も一緒だろ?
それは多相型のメリットではない。
型により挙動が変わるコードを書くことができるので便利ということなら
逆に動作が分かりにくいコードを書けることにも繋がるので
邪魔な機能という気がするがなあ。
300デフォルトの名無しさん
2012/11/03(土) 18:14:41.66 びっくりした。
コレクションごとにfor文も別に用意するか?
コレクションごとにfor文も別に用意するか?
301デフォルトの名無しさん
2012/11/03(土) 18:29:28.79 それならCのキャストでも良いだろ?
動かしてみないと実際の中に見合った型が分からないのはバグの温床。
動かしてみないと実際の中に見合った型が分からないのはバグの温床。
302デフォルトの名無しさん
2012/11/03(土) 18:48:54.98 >>299
例えば配列があったとするよね?
数値用配列と文字用配列はどちらも配列だから
配列として作りたい。
だけど数値用配列には数値しか入れたくない。
数値しか入らないのであれば、数値以外を間違っていれようとしたらエラーにできるし
配列から取り出したものは必ず数値だから高機能エディタは数値用のメソッドだけを
コード補完できるようになる。
例えば配列があったとするよね?
数値用配列と文字用配列はどちらも配列だから
配列として作りたい。
だけど数値用配列には数値しか入れたくない。
数値しか入らないのであれば、数値以外を間違っていれようとしたらエラーにできるし
配列から取り出したものは必ず数値だから高機能エディタは数値用のメソッドだけを
コード補完できるようになる。
303デフォルトの名無しさん
2012/11/03(土) 18:58:55.25 まったく多相型のメリットになってないけど、それがどうした?
304デフォルトの名無しさん
2012/11/03(土) 19:09:50.89305デフォルトの名無しさん
2012/11/03(土) 19:25:03.09 >>304
日常的に使われる加算演算子‘+’が
整数・実数・複素数等、型を意識しなくとも同様に使えるように、
コンピュータ言語において、変数や関数の型を意識しなくても同様の挙動をするものを
まとめて扱う機能のこと。
日常的に使われる加算演算子‘+’が
整数・実数・複素数等、型を意識しなくとも同様に使えるように、
コンピュータ言語において、変数や関数の型を意識しなくても同様の挙動をするものを
まとめて扱う機能のこと。
306デフォルトの名無しさん
2012/11/03(土) 20:01:53.45 馬鹿な意見が出てくるわけだ…
307デフォルトの名無しさん
2012/11/03(土) 21:42:26.80 >>305
それは「型」じゃねぇ。
それは「型」じゃねぇ。
308264
2012/11/04(日) 07:24:51.99 で此処の人たちは能書きばかりで実際に言語作る気あるのん?
309デフォルトの名無しさん
2012/11/04(日) 11:43:24.67 >307
複数の型を同じように処理できるって言う正しい説明だ思う。
複数の型を同じように処理できるって言う正しい説明だ思う。
310デフォルトの名無しさん
2012/11/04(日) 12:09:13.65 多相型は最初に書きやすくてもメンテしづらい。
作り捨てプログラマなら平気なんだろうけど。
メンテしづらい言語仕様は糞だよ糞。
作り捨てプログラマなら平気なんだろうけど。
メンテしづらい言語仕様は糞だよ糞。
311デフォルトの名無しさん
2012/11/04(日) 13:48:44.52 >>310
動的型付け言語はもっとダメだろうなw
動的型付け言語はもっとダメだろうなw
312デフォルトの名無しさん
2012/11/04(日) 17:24:12.16 >>305
それはオーバーロード
それはオーバーロード
313デフォルトの名無しさん
2012/11/04(日) 22:55:33.65314デフォルトの名無しさん
2012/11/04(日) 23:20:07.69315デフォルトの名無しさん
2012/11/04(日) 23:35:28.72 >>314
そこで void * ですよ
そこで void * ですよ
316デフォルトの名無しさん
2012/11/04(日) 23:40:56.78317デフォルトの名無しさん
2012/11/05(月) 00:50:23.41 そこで始原クラス
class Object
ですよ
class Object
ですよ
318デフォルトの名無しさん
2012/11/05(月) 01:14:51.74 Objectも元の型に戻すのにキャストいるだろw
319デフォルトの名無しさん
2012/11/05(月) 02:54:14.83 幸せなやつばかりでいいな。
多相型を使っても使わなくても、ポリモーフィズムは実現できるし
メンテしやすいように書くこともできる。
しかし、よりメンテしづらいものを書けてしまうのが多相型。
共通する動作を1か所にまとめ、異なる動作をする部分は別々に記述する。
これが、バグを作り込まないための言語としてあるべき姿。
異なる部分が、共通する部分の中に取り込まれる形では
(プログラムの正しさではない)仕様の正しさを人間が検証するのに不向き。
お気楽プログラムしか書かないなら気にしないんだろうけど。
いや、そういうのしか書かないなら本当に気にしなくていいことだよ。
多相型を使っても使わなくても、ポリモーフィズムは実現できるし
メンテしやすいように書くこともできる。
しかし、よりメンテしづらいものを書けてしまうのが多相型。
共通する動作を1か所にまとめ、異なる動作をする部分は別々に記述する。
これが、バグを作り込まないための言語としてあるべき姿。
異なる部分が、共通する部分の中に取り込まれる形では
(プログラムの正しさではない)仕様の正しさを人間が検証するのに不向き。
お気楽プログラムしか書かないなら気にしないんだろうけど。
いや、そういうのしか書かないなら本当に気にしなくていいことだよ。
320デフォルトの名無しさん
2012/11/05(月) 05:10:38.83 内容がない文章だな。
俺が反論を書いてやろう。
多相型を使っても使わなくても、ポリモーフィズムは実現できるし
メンテしやすいように書くこともできる。
しかし、よりメンテしづらいものを書けてしまうのが多相型を使わない方式
共通する動作を1か所にまとめ、異なる動作をする部分は別々に記述する。
これが、バグを作り込まないための言語としてあるべき姿。
異なる部分が、共通する部分の中に取り込まれる形では
(プログラムの正しさではない)仕様の正しさを人間が検証するのに不向き。
お気楽プログラムしか書かないなら気にしないんだろうけど。
いや、そういうのしか書かないなら本当に気にしなくていいことだよ。
俺が反論を書いてやろう。
多相型を使っても使わなくても、ポリモーフィズムは実現できるし
メンテしやすいように書くこともできる。
しかし、よりメンテしづらいものを書けてしまうのが多相型を使わない方式
共通する動作を1か所にまとめ、異なる動作をする部分は別々に記述する。
これが、バグを作り込まないための言語としてあるべき姿。
異なる部分が、共通する部分の中に取り込まれる形では
(プログラムの正しさではない)仕様の正しさを人間が検証するのに不向き。
お気楽プログラムしか書かないなら気にしないんだろうけど。
いや、そういうのしか書かないなら本当に気にしなくていいことだよ。
321デフォルトの名無しさん
2012/11/05(月) 05:11:49.36322デフォルトの名無しさん
2012/11/05(月) 05:18:15.45323デフォルトの名無しさん
2012/11/05(月) 16:45:44.46 荒らしと思われると困るのでレス無用だが、現金より強力な最強プログラミング言語を拳固以外で何かあれば手に入れたい。
324デフォルトの名無しさん
2012/11/06(火) 03:14:21.92 反論になってないものに反論することは出来ないし
俺も困らないからどうでもいいや。
少なくとも俺の作ってるのには含まれない機能だしね。
俺も困らないからどうでもいいや。
少なくとも俺の作ってるのには含まれない機能だしね。
325デフォルトの名無しさん
2012/11/06(火) 07:19:46.53 int用リスト、double用リスト、string用リスト、その他ユーザ定義型用リストを作って
それぞれにsort関数書く方がメンテしやすいんですよね?www
それぞれにsort関数書く方がメンテしやすいんですよね?www
326デフォルトの名無しさん
2012/11/06(火) 08:23:12.14 多相型ってパターンマッチングとかで使うものじゃなかった?
今話されているような使い方されることもあるの?
C++0xにconceptが入らなかったことが悔やまれる
今話されているような使い方されることもあるの?
C++0xにconceptが入らなかったことが悔やまれる
327326
2012/11/06(火) 08:50:05.39 326のことは忘れてください
328デフォルトの名無しさん
2012/11/06(火) 13:19:39.00 >312
多層型を実現するのにオーバーロードを使ってるんだろ。
ソート関数いくつも書くより比較演算子をオーバーロードした方が楽だって事。
多層型を実現するのにオーバーロードを使ってるんだろ。
ソート関数いくつも書くより比較演算子をオーバーロードした方が楽だって事。
329デフォルトの名無しさん
2012/11/06(火) 19:44:16.39 Parametric polymorphism
Inclusion polymorphism
Ad-hoc polymorphism
全部違うものなのに、区別しないで議論しても仕方ない
Inclusion polymorphism
Ad-hoc polymorphism
全部違うものなのに、区別しないで議論しても仕方ない
330デフォルトの名無しさん
2012/11/06(火) 19:57:09.25 何を言っているのかわかりづらいので、
Adhoc polymorphism
Parametric polymorphism
Subtype polymorphism
という用語を使って話してもらえますか?
オーバーロードというのは、型ごとに別の定義を持つ(組み込みのものを含む)
adhoc polymorphismのことを言っているということでいいですか?
Adhoc polymorphism
Parametric polymorphism
Subtype polymorphism
という用語を使って話してもらえますか?
オーバーロードというのは、型ごとに別の定義を持つ(組み込みのものを含む)
adhoc polymorphismのことを言っているということでいいですか?
331デフォルトの名無しさん
2012/11/06(火) 19:57:50.51332デフォルトの名無しさん
2012/11/06(火) 22:01:55.60 >>328
とりあえずソート関数の型を書いてみようか
とりあえずソート関数の型を書いてみようか
333デフォルトの名無しさん
2012/11/06(火) 23:35:26.36 sort[T <: Comparable] : Seq[T] => Seq[T]
334デフォルトの名無しさん
2012/11/07(水) 00:01:27.20 sort :: Ord a => [a] -> [a]
335デフォルトの名無しさん
2012/11/07(水) 00:03:29.58 haskellはList限定なのね
336デフォルトの名無しさん
2012/11/07(水) 00:10:16.25 コンテナの中身は多相型で、sort関数自体は
List, Seq, ByteString などでオーバーロード的に定義されてる
List, Seq, ByteString などでオーバーロード的に定義されてる
337デフォルトの名無しさん
2012/11/07(水) 00:17:28.72 あ、ごめん
オーバーロード的に、は嘘だった
オーバーロード的に、は嘘だった
338デフォルトの名無しさん
2012/11/07(水) 00:59:02.84 >>335
配列対象だとモナらないといけないので型もSTな感じに変わってくる。
配列対象だとモナらないといけないので型もSTな感じに変わってくる。
339デフォルトの名無しさん
2012/11/08(木) 08:11:00.12 オブジェクト指向と関数型、静的型とRubyのような簡潔さ
JVMならどこでも動くポータブルさとJavaの豊富なコード資産
思いつく限りの良い性質を取り入れたScalaが
残念な言語になったのは何故だろう?
良い性質を取り入れるだけでは新言語は良くならないという事か
JVMならどこでも動くポータブルさとJavaの豊富なコード資産
思いつく限りの良い性質を取り入れたScalaが
残念な言語になったのは何故だろう?
良い性質を取り入れるだけでは新言語は良くならないという事か
340デフォルトの名無しさん
2012/11/08(木) 10:01:45.79 scalaは型システムが一般人向きじゃない。
341デフォルトの名無しさん
2012/11/08(木) 18:11:07.19 >オブジェクト指向と関数型、静的型とRubyのような簡潔さ
>JVMならどこでも動くポータブルさとJavaの豊富なコード資産
この2行だけだと、「思いつく限り」という程いい点が多いように思えない。
>JVMならどこでも動くポータブルさとJavaの豊富なコード資産
この2行だけだと、「思いつく限り」という程いい点が多いように思えない。
342デフォルトの名無しさん
2012/11/08(木) 18:36:01.32 Javaっていう名の知れたものの資産ぐらいだね。
それもそんなにあるかどうか・・・
それもそんなにあるかどうか・・・
343デフォルトの名無しさん
2012/11/09(金) 01:33:02.45 やっぱりRubyのような機能を
取り入れたのが失敗のもとなんじゃないですか?w
取り入れたのが失敗のもとなんじゃないですか?w
344デフォルトの名無しさん
2012/11/09(金) 10:40:19.66 Javaがコード資産ないという評価だと、ほとんど全ての言語はアウトだな。
345デフォルトの名無しさん
2012/11/09(金) 11:55:35.81 ほかとの比較でね。
優位である点が見当たらない。
優位である点が見当たらない。
346デフォルトの名無しさん
2012/11/09(金) 15:35:05.92 トップクラスの豊富さなのに、
それをそのまま使えるんだから優位以外の何物でもないと思うが。
それをそのまま使えるんだから優位以外の何物でもないと思うが。
347デフォルトの名無しさん
2012/11/09(金) 21:12:18.20348デフォルトの名無しさん
2012/11/09(金) 22:10:11.12 Haskellの隣の順位という時点で
大人気とは言いがたい
大人気とは言いがたい
349デフォルトの名無しさん
2012/11/09(金) 22:42:35.38 Javaは優位な点だらけでしょw
静的型付け言語というのが一番のメリットで、
その中でここまでうまくやれてるのって
他にないでしょ。
静的型付け言語というのが一番のメリットで、
その中でここまでうまくやれてるのって
他にないでしょ。
350デフォルトの名無しさん
2012/11/09(金) 22:58:45.41 Javaは冗長すぎてウンコ
351デフォルトの名無しさん
2012/11/10(土) 07:52:09.13 java は参照渡しができなくてウンコ
352デフォルトの名無しさん
2012/11/10(土) 08:08:17.60 そんな細かい指摘しか無いの?
○○をするにはどうすればいいんだろう?と思った時
他の言語なら最近出てきたものが、
Javaの世界には既にあったって驚くことばかりなんだけど。
○○をするにはどうすればいいんだろう?と思った時
他の言語なら最近出てきたものが、
Javaの世界には既にあったって驚くことばかりなんだけど。
353デフォルトの名無しさん
2012/11/10(土) 08:16:29.74 Java は参照渡しができなくてウンコ
354デフォルトの名無しさん
2012/11/10(土) 08:30:16.44 参照渡しの代わりになる技術はあるが、
その逆はない。
例えば、eclipseのリファクタリング機能。
あれと同等の数と信頼性を持ったものはない。
これはecliseが凄いだけというやつがいるが、
Javaだからこそ、ここまで作ることが可能だった。
その逆はない。
例えば、eclipseのリファクタリング機能。
あれと同等の数と信頼性を持ったものはない。
これはecliseが凄いだけというやつがいるが、
Javaだからこそ、ここまで作ることが可能だった。
355デフォルトの名無しさん
2012/11/10(土) 08:39:31.82 >>354
>参照渡しの代わりになる技術はある
ない
そしてJavaは参照渡し(call by reference)はない、あくまでも値渡し(call bye value)のみしかもたない
結論:Javaはウンコ
>参照渡しの代わりになる技術はある
ない
そしてJavaは参照渡し(call by reference)はない、あくまでも値渡し(call bye value)のみしかもたない
結論:Javaはウンコ
356デフォルトの名無しさん
2012/11/10(土) 08:55:26.14357デフォルトの名無しさん
2012/11/10(土) 09:00:15.79 >>356
Eclipseのリファクタリング機能がなくても
Eclipseで作りたかったアプリは
別にEclipseを使わなくても作れるということ。
目的はEclipseによるリファクタリングではない。
真の目的はアプリを作ることだ。
Eclipseのリファクタリング機能がなくても
Eclipseで作りたかったアプリは
別にEclipseを使わなくても作れるということ。
目的はEclipseによるリファクタリングではない。
真の目的はアプリを作ることだ。
358デフォルトの名無しさん
2012/11/10(土) 09:06:31.88 > 他の言語なら最近出てきたものが、
> Javaの世界には既にあったって驚くことばかりなんだけど。
他の言語なら昔からあったクロージャが
Javaにはまだ無いって驚くわ。
> Javaの世界には既にあったって驚くことばかりなんだけど。
他の言語なら昔からあったクロージャが
Javaにはまだ無いって驚くわ。
359デフォルトの名無しさん
2012/11/10(土) 09:11:18.33 Javaの基本データ型に参照が必要だと感じたことはないけど、
プログラミングスタイルがそういうやり方に慣れちゃってるんだろうね。
必要なら、mutableなオブジェクト型を作って渡してやればいいだけだろうけど。
プログラミングスタイルがそういうやり方に慣れちゃってるんだろうね。
必要なら、mutableなオブジェクト型を作って渡してやればいいだけだろうけど。
360デフォルトの名無しさん
2012/11/10(土) 09:15:23.92 こんな感じ
class Reference<T> {
T val;
void set(T v) { val=v; }
T get() { return val; }
}
class Example {
public static void main(String[] args) {
Reference<Integer> ref = new Reference<>();
f(ref);
System.out.println(ref.get());
}
static void f(Reference<Integer> ref) {
ref.set(777);
}
}
class Reference<T> {
T val;
void set(T v) { val=v; }
T get() { return val; }
}
class Example {
public static void main(String[] args) {
Reference<Integer> ref = new Reference<>();
f(ref);
System.out.println(ref.get());
}
static void f(Reference<Integer> ref) {
ref.set(777);
}
}
361デフォルトの名無しさん
2012/11/10(土) 09:23:23.55362デフォルトの名無しさん
2012/11/10(土) 09:24:55.92363デフォルトの名無しさん
2012/11/10(土) 09:41:44.28 Javaでクロージャのようなことしたかったら、こんなかんじ。
interface Closure {
void call();
}
class Example {
public static void main(String[] args) {
final Reference<Integer> ref = new Reference<>();
f(new Closure() {
public void call() {
ref.set(777);
}
});
System.out.println(ref.get());
}
static void f(Closure c) {
c.call();
}
}
interface Closure {
void call();
}
class Example {
public static void main(String[] args) {
final Reference<Integer> ref = new Reference<>();
f(new Closure() {
public void call() {
ref.set(777);
}
});
System.out.println(ref.get());
}
static void f(Closure c) {
c.call();
}
}
364デフォルトの名無しさん
2012/11/10(土) 09:45:04.96365デフォルトの名無しさん
2012/11/10(土) 09:46:04.93366デフォルトの名無しさん
2012/11/10(土) 09:48:22.78367デフォルトの名無しさん
2012/11/10(土) 09:51:19.44 そうやって可読性を落とすからJavaはゴミなんだよ
368デフォルトの名無しさん
2012/11/10(土) 09:53:29.72369デフォルトの名無しさん
2012/11/10(土) 10:05:28.89 Apache Commons
totallylazy
totallylazy
370デフォルトの名無しさん
2012/11/10(土) 10:09:45.17 現状のJavaが優れているからといって、新言語をJavaに似せても
その言語が良い物になるかっていうと違うだろ
Javaの強みは圧倒的なコード資産とノウハウなワケで
それは新言語にそっくりコピーは出来ないんだから
その言語が良い物になるかっていうと違うだろ
Javaの強みは圧倒的なコード資産とノウハウなワケで
それは新言語にそっくりコピーは出来ないんだから
371デフォルトの名無しさん
2012/11/10(土) 10:30:11.67■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 【沖縄】開業4ヵ月でこれは…“国民の税金”投入の『ジャングリア沖縄』で見た衝撃的な光景と、モチベーションが低い一部スタッフの現状 [ぐれ★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 【東京】「家族で話題にして」 “世田谷一家殺害から25年 警視庁が呼びかけ [煮卵★]
- 焼き芋を輪切りにして天ぷらにすると美味しいよ
- プロレスラーってロープに振ると走って戻ってくるけど
- 2000年の思い出
- お前らお嫁さん見つけた?
- なんJはスクリプトに荒らされて廃墟になったのに
- クズ「勉強頑張らなかった奴は一生DQNと一緒に肉体労働しろ」☚勉強頑張れるのも環境と巡り合わせなんだが? [783475554]
