s = "" + i;でintをStringに変換するのはなぜだめか
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/08/02(月) 23:30:130002デフォルトの名無しさん
2010/08/02(月) 23:39:520003デフォルトの名無しさん
2010/08/02(月) 23:48:100004デフォルトの名無しさん
2010/08/02(月) 23:49:08言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0005デフォルトの名無しさん
2010/08/03(火) 00:39:110006デフォルトの名無しさん
2010/08/03(火) 01:16:040007デフォルトの名無しさん
2010/08/03(火) 01:22:040008デフォルトの名無しさん
2010/08/03(火) 01:22:470009デフォルトの名無しさん
2010/08/03(火) 05:13:56まで読んだ
0010デフォルトの名無しさん
2010/08/03(火) 12:02:49var s = String( i );
って書くよ。
0011デフォルトの名無しさん
2010/08/03(火) 12:15:240012デフォルトの名無しさん
2010/08/03(火) 13:45:440013デフォルトの名無しさん
2010/08/03(火) 21:50:46そんなのBASICとかいう糞言語の仕様だろ
0014デフォルトの名無しさん
2010/08/03(火) 21:57:560015デフォルトの名無しさん
2010/08/03(火) 23:18:36型に対して無防備な言語は俺は嫌いだ。
0016デフォルトの名無しさん
2010/08/03(火) 23:26:270017デフォルトの名無しさん
2010/08/04(水) 01:27:30+で文字列結合がいやなやつって
言語あまり知らないんじゃね?
0018デフォルトの名無しさん
2010/08/04(水) 02:25:450019デフォルトの名無しさん
2010/08/04(水) 02:46:07http://d.hatena.ne.jp/katona/20071221/p3
文字列結合に+を使う言語は多い
0020デフォルトの名無しさん
2010/08/04(水) 04:43:42実際のところは""のせいで
長くなってくると非常に見辛い
a + ", " + b + ", " + c
みたいに書くよりも
"%s + %s + %s" % (a, b, c)
"{{a}} + {{b}} + {{c}}"
"#{a} + #{b} + #{c}"
とか書ける方がうれしい
0021デフォルトの名無しさん
2010/08/04(水) 07:09:08それはStringクラスの演算子オーバロードだから本来の + の効果ではない
0022デフォルトの名無しさん
2010/08/04(水) 09:37:490023デフォルトの名無しさん
2010/08/04(水) 10:51:33気にくわない。
0024デフォルトの名無しさん
2010/08/04(水) 10:52:510025デフォルトの名無しさん
2010/08/04(水) 11:51:46Haskellみたいに++にするとかさ
0026デフォルトの名無しさん
2010/08/04(水) 13:12:350027デフォルトの名無しさん
2010/08/04(水) 22:28:36内部実装がどうであれ、+で結合できることにはかわらんだろ。
C++標準ライブラリのSTLのstringの話だ。
0028デフォルトの名無しさん
2010/08/04(水) 22:31:11そういうことが標準でできないのは、JavaScriptぐらいだよな。
0029デフォルトの名無しさん
2010/08/04(水) 22:34:20++はインクリメントを思い出すからだめだな。
記号としてなら & が一番いいんじゃないか?
A と Bをあわせて(ry
A & B で(ry
0030デフォルトの名無しさん
2010/08/04(水) 23:51:26VBは嫌い
0031デフォルトの名無しさん
2010/08/05(木) 00:06:100032デフォルトの名無しさん
2010/08/05(木) 06:03:050033デフォルトの名無しさん
2010/08/05(木) 12:02:570034デフォルトの名無しさん
2010/08/05(木) 12:35:42C++だとテンプレートを駆使しないと出来ないようなことが
阿呆みたいに簡単にできるからなぁ
0035デフォルトの名無しさん
2010/08/05(木) 14:13:40今でもくそだと思ってるよ。
C#に導入されたけど、乱用されませんように。
0036デフォルトの名無しさん
2010/08/05(木) 14:25:49ラッパー自動生成なんかより遥かにスマート
0037デフォルトの名無しさん
2010/08/06(金) 00:27:31> Javaだと実装不可能
何の話してるの?
文字列の結合?それならJavaでも+だけど。
0038デフォルトの名無しさん
2010/08/06(金) 01:05:35その思考回路がわからない。
余計見難くなってるようにしか思えないけど....
っていうか、そういうのは普通にデリミタ挟んで文字列の配列を結合するメソッドを
作ろう(またはライブラリのそういうメソッドを使おう)よ
話飛ぶけど、ダックタイピングだの型が厳密でないだの、>>1の意図がマジで全然
理解できてない奴が何人かいるんだなw
0039デフォルトの名無しさん
2010/08/06(金) 01:13:05C++とかJavaとか、結局formatみたいの導入されてるし。
0040デフォルトの名無しさん
2010/08/06(金) 01:48:070041デフォルトの名無しさん
2010/08/06(金) 01:49:10「?」しか書いていない>>1は馬鹿で〜すといいたいわけだ。
0042デフォルトの名無しさん
2010/08/06(金) 02:22:00なぜって疑問を呈してる訳だろ? >>1は。
で>>38は、ダックタイピングの話題がでてるけど、それって>>1の疑問と関係ないよね、
おまえらわかってんの?って言ってるわけでしょ。
0043デフォルトの名無しさん
2010/08/06(金) 02:36:42>>38 の言ってることは一理ある
' + '.join([a, b, c])
って書けるとかなりスマートだ
0044デフォルトの名無しさん
2010/08/06(金) 02:39:53ExtJS とか入れると Javascript で format 使えるようになって嬉しかったり
0045デフォルトの名無しさん
2010/08/06(金) 02:46:50でも、それ規則的な連結にしか使えないでしょ。
0046デフォルトの名無しさん
2010/08/06(金) 03:54:26たとえば n を 10 倍するときに
s = n * 10;
ではなく
s = n + "0";
って書いてしまう馬鹿が perler とか PHPer とか VBer に少なからず居る
0047デフォルトの名無しさん
2010/08/06(金) 11:07:050048デフォルトの名無しさん
2010/08/06(金) 18:24:25それを知らない、使い方が分からないバカが連結持ち上げてるんでしょ
0049デフォルトの名無しさん
2010/08/06(金) 18:29:11cout << "x = '" << hex << h << "'" << endl;
どうしてこうなった?
0050デフォルトの名無しさん
2010/08/06(金) 20:27:32それ使いづらいから結局printf使ってる。
0051デフォルトの名無しさん
2010/08/06(金) 20:33:060052デフォルトの名無しさん
2010/08/06(金) 20:42:59演算子オーバーロードとテンプレートを
使いたくて使いたくて仕方がなかったから。
0053デフォルトの名無しさん
2010/08/06(金) 21:47:45それでも、printf/scanfよりまし。
0054デフォルトの名無しさん
2010/08/06(金) 21:58:42テンプレートは使ってないだろ。
0055デフォルトの名無しさん
2010/08/06(金) 22:44:040056デフォルトの名無しさん
2010/08/06(金) 23:09:000057デフォルトの名無しさん
2010/08/06(金) 23:53:02kwsk
>>56
テンプレートは最初からあるぞ
0058デフォルトの名無しさん
2010/08/06(金) 23:53:59boost::format はでかすぎなのと % がきもい
(s)printf と比べてメリットがそんなになさそう
0059デフォルトの名無しさん
2010/08/07(土) 00:11:46printf/scanfはそもそも安全でないので話にならない。
C++でテンプレートが導入されたのは比較的新しい。
0060デフォルトの名無しさん
2010/08/07(土) 01:03:32初期のC++にないもの。
・テンプレート
・例外
メモリの割り当てに失敗したら例外発生するんじゃなくて
NULL返すんだぜ。
0061デフォルトの名無しさん
2010/08/07(土) 08:02:440062デフォルトの名無しさん
2010/08/07(土) 08:27:560063デフォルトの名無しさん
2010/08/07(土) 13:59:34それって90年代の中頃にはすでにあっただろ。
無い時代のC++知ってるのって、そうとうおっさんだけなんじゃない。
0064デフォルトの名無しさん
2010/08/07(土) 14:19:27どっちにしても、テンプレートないころからiostreamはある。
0065デフォルトの名無しさん
2010/08/07(土) 14:51:090066デフォルトの名無しさん
2010/08/07(土) 14:53:390067デフォルトの名無しさん
2010/08/08(日) 08:28:44マクロとかvoid*使ってたんだぜ
0068デフォルトの名無しさん
2010/08/08(日) 08:51:410069デフォルトの名無しさん
2010/08/08(日) 12:30:040070デフォルトの名無しさん
2010/08/09(月) 11:30:06--
awk 'BEGIN {i = 10; j = 20; print i j;}'
--
これで 1020 と出力されるのだけど、裏を返せばTypoが怖いw
0071デフォルトの名無しさん
2010/08/09(月) 12:43:49C言語系書式のfor文と勘違いして混乱したじゃねーか
0072デフォルトの名無しさん
2010/08/09(月) 12:44:260073デフォルトの名無しさん
2010/08/09(月) 13:52:25Perlやawkは型の区別が無いが演算子は区別してる例
PythonやRubyは演算子は同じだが型付けが強く文字列と数値を自動的にcoerceしない
(>>1の例はエラーになる)
だな
この両者に比べると>>1式はひどいように思う
JavaScriptは文字列にcoerceするので、数値を""と足すと文字列化になるが
バッドノウハウ的だし意図せぬ誤りの元
が、もっとひどいのがPowerShell
1+"2" -> 3
"1"+2 -> "12"
こうなるんだぜ
0074デフォルトの名無しさん
2010/08/09(月) 15:21:13>>73が何も分かってないだけだろw
>>1の意図は明らかにそういう奴をおちょくることにあるんだが、
まあ、おちょくりの対象側の人間にとってはこの通り蛙の面にしょんべんだわな。
なにせ自分の無理解の自覚がないんだからw
0075デフォルトの名無しさん
2010/08/09(月) 15:45:230076デフォルトの名無しさん
2010/08/09(月) 19:50:13演算子の左辺の型によって演算子の挙動が変わるのか
いかにもバグの元になりそうな仕様だな
0077デフォルトの名無しさん
2010/08/09(月) 22:11:46やっぱりわかってないな。
0078デフォルトの名無しさん
2010/08/10(火) 00:27:47http://hibari.2ch.net/test/read.cgi/pcnews/1281355124/
0079デフォルトの名無しさん
2010/08/10(火) 01:34:120080デフォルトの名無しさん
2010/08/10(火) 06:35:220081デフォルトの名無しさん
2010/08/10(火) 07:40:16でもいい
0082デフォルトの名無しさん
2010/08/12(木) 08:27:151.+("2") -> 3
"1".+(2) -> "12"
うん、至って普通の動作だ
0083デフォルトの名無しさん
2010/08/12(木) 10:35:380084デフォルトの名無しさん
2010/08/12(木) 10:40:310085デフォルトの名無しさん
2010/08/12(木) 12:30:33これを見てもそう思う?
1 + 0.5 -> 1.5
0.5 + 1 -> 1.5
PowerShellでも
1 + 0.5 は1にはならない(勿論.NETなので、1と0.5の型は違う)
糞ほどのセンスも感じられない一貫性の無さだね
0086デフォルトの名無しさん
2010/08/12(木) 12:35:40もっと勉強しろ
0087デフォルトの名無しさん
2010/08/12(木) 12:59:51ちゃんとスレ読んでるか?
008885
2010/08/12(木) 13:04:52Int32 + String -> Int32
String + Int32 -> String
Int32 + Double -> Double
Double + Int32 -> Double
この仕様は君らにとってはOKなわけか、俺にはわからんわw
何でOKなのか教えてくれない?
0089デフォルトの名無しさん
2010/08/12(木) 13:07:41文句は Perl に言ってくれ
0090デフォルトの名無しさん
2010/08/12(木) 13:08:43関係ないじゃん
0091デフォルトの名無しさん
2010/08/12(木) 13:27:470092デフォルトの名無しさん
2010/08/12(木) 13:49:02実装都合なんて無意味じゃね?
これと違う仕様にも実装できるし、事実そうなっている言語はたくさんある
純粋に仕様として綺麗か汚いかって話だと思うんだが
0093デフォルトの名無しさん
2010/08/12(木) 14:22:39(Int32 + String -> Double)
単純に左オペランドの型に変換しているわけではない模様
"1" + .5 -> "10.5"
"1" + 10e2 -> "11000"
"1" + 10e100 -> "11E+101"
この辺はこうなる、予想の範囲だが
0094デフォルトの名無しさん
2010/08/12(木) 14:48:13夏 エラーと落球で逆転を許すとは末代までの恥
0095デフォルトの名無しさん
2010/08/12(木) 22:32:210096デフォルトの名無しさん
2010/08/13(金) 00:04:42書きなぐるコードじゃないなら型が厳しい方が好きだ。
0097デフォルトの名無しさん
2010/08/13(金) 18:02:29型厳しいとIDEも頭良くなれるし。
0098デフォルトの名無しさん
2010/08/13(金) 20:50:260099デフォルトの名無しさん
2010/08/13(金) 21:02:45むしろユルいのはお前さんの頭(以下略
>>85
よくある愚論だけど、別に(プログラミング言語の設計において)全てにおいて
一貫性が優先されるわけじゃない。
直感的であることと表面的な一貫性が矛盾する場合、どっちを優先すべきかは明らか。
数値同士の演算結果が前のオペランドの型になるような仕様が嬉しい奴はいない。
stringの+演算子が、片方のオペランドのToString()を呼び出すように定義されている
(C#の場合)のは、自然で直感的な仕様だ。
0100デフォルトの名無しさん
2010/08/13(金) 21:06:47"3" * 5 -> "33333"
これはどう思う?
0101デフォルトの名無しさん
2010/08/13(金) 21:30:400102デフォルトの名無しさん
2010/08/13(金) 22:50:16意味わからん
C#だと
"1" + 2 も 1 + "2" も string になるからPowerShellと違って一貫してるだろ
"1" + 2が"12"になって1 + "2"が3になる仕様が自然で直感的だってのも
お前が脳内で考えてるだけじゃね?
つか、バカじゃないの?
0103デフォルトの名無しさん
2010/08/13(金) 23:19:57もちろん馬鹿。いや君がね。
そういう言い方をするのなら、
「"1" + 2が"12"になって1 + "2"が3になる仕様は一貫性がなく不自然だ」
というのも、たかだかお前さんのウンコ脳の見解に過ぎないわけだが。
そもそも一貫性っていったって物差しの置き方次第でなんとでもいえるんだが、
自分がいったい何を基準に一貫性って言ってるのか、自覚してるか?
PowerShellについては俺は知らんが、仮に「数値同士以外の場合、演算子は
最初のオペランドの型に対する操作だとみなす」というルールだとして、
そうであるならそれなりに合理的だ。
0104デフォルトの名無しさん
2010/08/13(金) 23:27:42> 数値同士以外の場合、演算子は最初のオペランドの型に対する操作だとみなす
いや例外を設けてる時点で、一貫性という観点では例外の不要なルールより
明白に劣るだろ
一貫性って日本語の意味わかってまちゅかー?
本気でアホなんだな
さすがいきなり他人をユルいとかアホとか言い出すだけはあるわ
0105デフォルトの名無しさん
2010/08/13(金) 23:33:28*てことはPythonか
それは定義域がstrとintの演算として定義されてるから
いいんじゃねーの知らんけどw
0106デフォルトの名無しさん
2010/08/13(金) 23:39:57とことんお馬鹿だな。
だから、何故そんなに「一貫性」が重要なのだと言ってるだろう。
まずそこに答えてくれ。まあそんな必然性は無いから無理だと思うがな。
そういうのを「馬鹿の一つ覚え」というんだよ。
そんなものより、柔軟に暗黙的は変換が行われるほうが大事だ、
という立場もありうる。世の中の価値観が一つしかないとでも思ってるのか。
ちなみにお前さんの言っているのは(君は自覚してないようだが)
たかだか「演算子は交換法則が成立します」という形式的な一貫性に過ぎない。
一貫性という言葉にこだわるのなら、>>102のような仕様は、
「暗黙的な型変換が柔軟に行われる」という思想に照らして一貫しているということもできる。
0107デフォルトの名無しさん
2010/08/13(金) 23:43:07頑張るねえw
おまえの言う「自然で直感的」より格段に客観的な尺度だろ
例外が不要なシンプルなルールのほうが理解しやすいから、
通常は自然で直感的にもなる
逆に言えば、一貫性を犠牲にしてPowerShellのユーザが享受できる
利点は何だ?
つーか、よく読まずにC#なんて的外れな例持ち出してきて他人罵倒したから
ひっこみがつかなくなったか?w
馬鹿な犬ほど良く吠えるって奴だなw
0108デフォルトの名無しさん
2010/08/14(土) 00:04:44>>1
0109デフォルトの名無しさん
2010/08/14(土) 00:07:10お前はcontextを読めよw
PowerShellに関する話題へのレスだろw
0110デフォルトの名無しさん
2010/08/14(土) 00:22:04どの面さげてそういうことが言えるのか。
そもそも>>73も君じゃねえの?
まあ何れにせよ君が言ってることがトンチキなのは間違いないが。
0111デフォルトの名無しさん
2010/08/14(土) 00:25:36>>1に関しては、JavaやC#みたいな静的型言語なら別にいいんじゃねーの?
としか思わんな
動的型だと
foo + bar
が何やってんだか一見わかりにくいことが多いから、
Python/Ruby/Perl/Awk式のほうが好きだよ俺は
まあ+がオーバーロードされているJavaScriptにしても
PowerShellほどはひどくねーけどな
0112デフォルトの名無しさん
2010/08/14(土) 00:31:24PowerShellの擁護すんのは諦めてとにかく難癖だけはつけたいってことで
いいのか?w
ちょっとは具体的なことを語れるやつみたいだからつきあってやったが
所詮は罵倒しか脳の無いアホだったかw
0113デフォルトの名無しさん
2010/08/14(土) 00:49:23夏休みの中盤に名にやってんの
さっさと練れ
0114デフォルトの名無しさん
2010/08/14(土) 01:35:47b = a + 1
ってコードがあったらほぼ確実に「1を足す」という意図だし、読み手もそう読む
が、動的型だと、aに"foo"等が入ってくることも有り得る(通常それはバグだ)
その場合、PythonやRubyはエラーにしてくれるが
JavaScriptでは黙ってbに"foo1"が入る
勿論静的型ならこうした問題はそもそも発生しない
それと、
"I paid " + n + "dollars"
みたいなのは、LL言語なら
"I paid $n dollars"
のように書けたほうがずっと読み書きやすい
Pythonなら "I paid %d dollors" % n になるが、テキストが分裂せず一箇所に
まとまっているので、やはりこっちのほうが読みやすい
ついでに数値フォーマットも正確に指定できるというご利益がある
ところでPowerShellでは、
"I paid " + $n + " dollars"と同じ調子で
$n + "% completed"
とか書いたら、$nが数値の場合にはoperator +の意味が変化してエラーになるわけだ
これが非一貫性の引き起こす問題、美的でないだけでなく
無駄に罠的な仕様でありError Pruningって奴だぜ
0115デフォルトの名無しさん
2010/08/14(土) 02:14:15ブーン
カー?
0116デフォルトの名無しさん
2010/08/15(日) 23:45:290117デフォルトの名無しさん
2010/08/16(月) 02:17:280118デフォルトの名無しさん
2010/08/16(月) 12:26:57歴史の議論で。
0119デフォルトの名無しさん
2010/08/16(月) 12:31:23韓国に都合の悪いとこをカットすんな、狗HK!
>2010-08-14 NHK総合「日本のこれから、共に語ろう日韓の未来」出演
★補足★編集でカットされた部分
6.僕の発言に関連する部分
⇒韓国人出演者の一人が、ドイツ人はユダヤ人に対するホロコーストに対し謝罪と補償をしているから日本もするべきみたいなニュアンスのことを発言したので僕がそれを否定する発言に続く。(この前段階がカットされている)
http://d.hatena.ne.jp/aniotahosyu/20100814/1281792754
崔洋一はキチガイだよな
声がでかいだけで中身がないくせに
自分を棚にあげて相手を罵倒する最低の人間
0120デフォルトの名無しさん
2010/08/16(月) 13:18:12まあ生じゃできないよな
0121デフォルトの名無しさん
2010/08/17(火) 08:36:13南京は真偽不明だしそもそも下朝鮮関係ないし
0122デフォルトの名無しさん
2010/08/17(火) 08:46:19すずめ監督は、植民地のこと言われて火病ったのではなく、
テレビも新聞も政治家も歴史家も触れられなかった最大のタブー、
「朝鮮人は日本人として、日本軍にたくさんいた。つまり戦争の加害者」
と反論できない事実を暴露されたから、取り乱したんですよ。
この事実で朝鮮人の言い分の前提が瓦解するから。
怒鳴りながら、話をそらして資格がないで封殺したつもりが墓穴。
0123デフォルトの名無しさん
2010/08/17(火) 14:47:010124デフォルトの名無しさん
2010/08/18(水) 00:29:47で、Stringってオブジェクト? C++の。
0125デフォルトの名無しさん
2010/08/18(水) 09:19:50お前がそれしか知らないからか
0126デフォルトの名無しさん
2010/08/18(水) 19:32:22javaの話です
C、C++はすれちがい
0127デフォルトの名無しさん
2010/08/19(木) 03:26:340128デフォルトの名無しさん
2010/08/19(木) 06:45:200129デフォルトの名無しさん
2010/08/20(金) 22:25:490130デフォルトの名無しさん
2010/08/20(金) 22:32:580131デフォルトの名無しさん
2010/08/21(土) 21:40:46というかスレタイの意味が理解できてない奴が多い
0132デフォルトの名無しさん
2010/08/21(土) 21:53:18言語すら書いてないだろw
0133デフォルトの名無しさん
2010/08/21(土) 22:18:130134デフォルトの名無しさん
2010/08/28(土) 04:29:42"3" * 5 がエラーになったら「えー、なんで"33333"にならねーの?めんどくせーなー」って勢いなんだけど
どんな用途向けなのか、よりまず言語としての厳密さを求めるってのは、
やっぱ人の価値観てのは違うんだねぇ
0135デフォルトの名無しさん
2010/08/28(土) 05:21:56irb(main):001:0> 1 + 0.5
=> 1.5
irb(main):002:0> '3' * 5
=> "33333"
irb(main):003:0>
$ python
>>> 1 + 0.5
1.5
>>> '3' * 5
'33333'
>>> ^Z
0136デフォルトの名無しさん
2010/08/28(土) 05:46:011.5
15
0137ちょっと間違えた
2010/08/28(土) 05:47:241.5
15
0138デフォルトの名無しさん
2010/08/28(土) 05:48:0115
sugeeeee
0139デフォルトの名無しさん
2010/08/28(土) 06:26:280
awkには文字列演算がないから、演算子があれば対象は必ず数値として扱われる。
$ awk 'BEGIN {print 3 5;}'
35
文字列の連結は単にオブジェクトを並べるだけ。
0140デフォルトの名無しさん
2010/08/28(土) 11:28:450141デフォルトの名無しさん
2010/08/28(土) 12:15:370142デフォルトの名無しさん
2010/08/28(土) 15:34:41あー、それ一度は誰もが考えるよね。
0143デフォルトの名無しさん
2010/08/28(土) 16:51:21>>136 こっちが不自然って言うか、融通が利かないなって思う
やっぱ人によって違うねぇ・・・
0144デフォルトの名無しさん
2010/08/28(土) 16:52:300145デフォルトの名無しさん
2010/08/28(土) 16:58:56というかLispの真似だろう
0146デフォルトの名無しさん
2010/08/28(土) 17:07:170147デフォルトの名無しさん
2010/08/28(土) 21:41:360148デフォルトの名無しさん
2010/08/28(土) 21:46:340149デフォルトの名無しさん
2010/08/28(土) 21:47:19組み込みリスト型、イテレータ、ガベコレ、関数型…
この辺ほぼLispが初出じゃね?
0150デフォルトの名無しさん
2010/08/28(土) 22:49:27x = 1 / 3;
y = x * 3;
で y が 1 になってくれるとうれしいよね
0151デフォルトの名無しさん
2010/08/28(土) 23:10:190152デフォルトの名無しさん
2010/08/29(日) 02:24:410153デフォルトの名無しさん
2010/08/29(日) 10:25:44想像通りのカンタンな実装だからパクれよお前ら。
俺もJavaでRational実装して使ってる。クソ便利。
0154デフォルトの名無しさん
2010/08/29(日) 12:21:51まあ、そんな場面はほとんどないわけで、活躍の場は非常に限定されそうだな。
何より今時ソフトで実装された数値表現なんてw
0155デフォルトの名無しさん
2010/08/29(日) 13:04:34いや、誤差が累積するのが問題になったりするから、
結果がどうでも有用だろ。
0156デフォルトの名無しさん
2010/08/29(日) 13:24:040157デフォルトの名無しさん
2010/08/29(日) 13:31:18そう来るだろうと思ったけど、誤差がないことを要求される場面(普通そうはない)
以外は問題ない。
多くの場合重要なのは必用な桁数の有効数字が得られるかどうかであって、
それは実数型で普通に可能。
その有理数型の「誤差がない」というメリットにしても、
演算仮定に無理数が入った途端に破綻することは理解してるのかな?
0158デフォルトの名無しさん
2010/08/29(日) 13:38:14>誤差がないことを要求される場面(普通そうはない)
このまえPHPで帳票出す仕事やって、割合を表示する列があって
さらにそれの小計やら合計をだすってことがあったけど。
0159デフォルトの名無しさん
2010/08/29(日) 13:41:24で、その帳票は割合を分数で表示する仕様なの?
言ってる意味分かる?
0160デフォルトの名無しさん
2010/08/29(日) 13:42:50それでさえ、充分な精度の実数型で代用できるし。
0161デフォルトの名無しさん
2010/08/29(日) 13:43:460162デフォルトの名無しさん
2010/08/29(日) 14:08:40いや、実数で表示する仕様。
計算もfloatでやってたから内部では誤差がでてた。
表示のときに適当にまるめてごまかしてたよ。
0163デフォルトの名無しさん
2010/08/29(日) 14:12:56単に君のやり方がマズいだけだねそれは。
0164デフォルトの名無しさん
2010/08/29(日) 14:23:00やっぱ、浮動小数点で計算して誤差が累積していくのはまずいんだよね。
やりかたがまずいのは下っ端だから、どうにもできない。
0165デフォルトの名無しさん
2010/08/29(日) 14:31:10具体的にはマイコンとかで
0166デフォルトの名無しさん
2010/08/29(日) 14:39:17っていうか、マイコンでもCコンパイラは普通に実数サポートしてるよ。
何らかの理由で実数のライブラリを使えないかアセンブラ使う場合は、
俺様仕様の浮動小数か固定小数を使う場合が多い。
0167デフォルトの名無しさん
2010/08/29(日) 14:39:52良い人から辞めちゃうよね
んでもって、腹黒い人とか、他人を動とも思わない人とか、
図々しい人とか、・・・そんなのばかりがテコでも動かないぜって
感じで居座り続ける・・・
会社って、こうやってダメになっていくんだと思う
それはそのまんま居座り族・牛耳り族が社会をダメにしていくって
ことなんだ。。。
0168デフォルトの名無しさん
2010/08/29(日) 18:43:51誤差ねー
NTSCの60fpsとかだよな
正確には60でなく60000/1001fpsなので、適当に扱うと、モロに誤差が集積する
「整数比を普通に扱いたい/計算したい」みたいな用途は
別にそう珍しくもないんじゃ?
例えば画面の縦横だって整数比だし
実数とは言うけれど、計算機上だと離散的な(整数)データ扱う機会のがむしろ
多いような
0169デフォルトの名無しさん
2010/08/29(日) 20:07:36フレーム数と比を掛けるだけだから、誤差の累積なんかないと思うけど....
ついでに野暮なことを言えば、フレームの時刻をそこまで厳密に求める意味は、
少なくとも2つの意味で通常はないよね。
一つは、恐らくビデオ回路の発振器の発振精度なんて恐らくそんな高くないから意味がない。
もう一つは、フレームの間隔を1/60secで計算して生成した画像と、
1001/60,000secで計算して生成した画像の差なんて、人間にはわからないw
0170デフォルトの名無しさん
2010/08/29(日) 20:14:37y = x * 3;
この時の y の値は有理数型と整数型、どっちであることがおまいらの好み?
0171デフォルトの名無しさん
2010/08/29(日) 20:33:200172デフォルトの名無しさん
2010/08/29(日) 20:39:310173デフォルトの名無しさん
2010/08/29(日) 21:31:13その定数の型は?
0174デフォルトの名無しさん
2010/08/30(月) 22:07:19それよりゼロ割り許可の数値型とか欲しい。
3/0, 2/0, 1/0, 0/0, -1/0 ・・・でもちろんゼロ割り状態でソートとか出来るようなの。
0175デフォルトの名無しさん
2010/08/30(月) 22:10:01分数型でいいんじゃね?
0176デフォルトの名無しさん
2010/08/30(月) 22:13:35おおなるほど。そのへんまで考えての分数型だったらすごいな。
でも単なる分数型だと 1/ (0^2) とか表現できる? 無限大の大小をソートしたいわけだし。
0177デフォルトの名無しさん
2010/08/30(月) 22:18:24そいつらの数学的意味は何ぞ?
0178デフォルトの名無しさん
2010/08/30(月) 22:25:123/0 > 1/0
だったりするのかな
0179デフォルトの名無しさん
2010/08/30(月) 22:32:11そうそう、というか最近の仕事でSQLなんだけど、(A / B) でORDER BY みたいな要件があったときに悩んだ。
もちろんBはゼロの可能性があって・・・なので言語的にそういうのカバーしてるのがひとつくらいあってもいいじゃん、てことです。
0180デフォルトの名無しさん
2010/08/30(月) 22:34:21結局、Rational型がほしいのな。
>>178
未定義、もしくは0の符号により、> < 未定義があり得る。
0181デフォルトの名無しさん
2010/08/31(火) 10:32:31それを分子によって順序付けしたいというのは、数学の定義ではなく、プログラマの独自の定義なんだから、
言語仕様でそれを定義しちゃったらおかしいよ。
0182デフォルトの名無しさん
2010/08/31(火) 11:08:110183デフォルトの名無しさん
2010/08/31(火) 12:18:46SQLでは0除算が役に立つのか?
0184デフォルトの名無しさん
2010/08/31(火) 12:20:090185デフォルトの名無しさん
2010/08/31(火) 13:02:02無限にも大小はある。
א参照。
0186デフォルトの名無しさん
2010/08/31(火) 13:43:22数学的には
lim(1/x) x→0 と lim(3/x) x→0 の比較なのか分からんと何も言えない、ってとこじゃないの?
0187デフォルトの名無しさん
2010/08/31(火) 13:46:010188デフォルトの名無しさん
2010/08/31(火) 14:33:10あほか
0189デフォルトの名無しさん
2010/08/31(火) 14:54:05抽象的過ぎて理解できないか。
0190デフォルトの名無しさん
2010/08/31(火) 15:00:53א連続体仮説とn/0の話は無関係だろっつーことא
0191デフォルトの名無しさん
2010/08/31(火) 22:26:03אが出てきたからって反射的に連続体仮説を出してきたのか?
0192デフォルトの名無しさん
2010/08/31(火) 23:55:480193デフォルトの名無しさん
2010/09/01(水) 11:18:500194デフォルトの名無しさん
2010/09/01(水) 11:24:110195デフォルトの名無しさん
2010/09/02(木) 00:20:22単にゼロ除算で落ちない型があってもいいじゃんくらいの話なんだ
0196デフォルトの名無しさん
2010/09/02(木) 00:22:21得体のしれない数同士を比較出来るようにしても……
0197デフォルトの名無しさん
2010/09/02(木) 00:32:350198デフォルトの名無しさん
2010/09/02(木) 00:49:22だったとして
(3 / 0) + (1 / 2)
はどうなりますか?
0199デフォルトの名無しさん
2010/09/02(木) 01:54:12>>>197お前や〜!
0200デフォルトの名無しさん
2010/09/02(木) 06:11:20(3 / 0) + (1 / 2) を通分すると
(3 / 0) + (0 / 0) = (3 / 0)
0201デフォルトの名無しさん
2010/09/02(木) 07:09:26ただし、その大小は定義できない。
(通常、整数型の0には符号がない。)
0202デフォルトの名無しさん
2010/09/02(木) 09:02:57ググってもなんか違う情報しかでなかったとです。
C++で演算子オーバロードを覚えたころに自力で分数クラスを作った覚えはある……
0203デフォルトの名無しさん
2010/09/02(木) 09:21:390204デフォルトの名無しさん
2010/09/02(木) 09:25:34In [2]: f = a*x**2 + b*x + c
In [3]: f
Out[3]:
2
c + b*x + a*x
In [4]: solve(f, x)
Out[4]:
_____________ _____________
/ 2 / 2
-b + \/ -4*a*c + b -b - \/ -4*a*c + b
[---------------------, ---------------------]
2*a 2*a
0205デフォルトの名無しさん
2010/09/02(木) 09:59:000206デフォルトの名無しさん
2010/09/02(木) 10:12:370207デフォルトの名無しさん
2010/09/02(木) 10:54:280208デフォルトの名無しさん
2010/09/02(木) 14:27:49Pythonには標準であるんじゃね?
0209デフォルトの名無しさん
2010/09/03(金) 14:15:51"7" == 7
0210デフォルトの名無しさん
2010/09/03(金) 14:19:150211デフォルトの名無しさん
2010/09/03(金) 21:27:040212デフォルトの名無しさん
2010/09/04(土) 00:20:10まで読んだ
0213デフォルトの名無しさん
2010/09/04(土) 02:46:557のように鳴けば、
それは7なんだよ。
0214デフォルトの名無しさん
2010/09/04(土) 07:18:010215デフォルトの名無しさん
2010/09/04(土) 07:42:43"7"が7番地にあったんだろ
0216デフォルトの名無しさん
2010/09/04(土) 12:17:52だから、"7"と7の間の比較法に曖昧さがなければ別に何も問題はない。
逆に聞くがどこか曖昧なところがあるのかよ。
多分若い奴が多いんだろうと想像するけど、80代のジジイみたいな硬直した
思考しかできない奴多いよな。
0217デフォルトの名無しさん
2010/09/04(土) 12:30:45だが文字と数値を比べるということは
それは文法的には"0"と0を比べることも可能ということになるんだよ。
"0"は文字という実体がある。だから真
0は何もないという意味。だから偽
違うものなのにイコールになる。
どう考えても曖昧だろ。
0218デフォルトの名無しさん
2010/09/04(土) 12:33:57君プログラマ?w
0219デフォルトの名無しさん
2010/09/04(土) 12:40:36お前は、どうでも良い揚げ足鳥にしか見えんのだが。
鳥なら鳥らしく飛んでみろよ。がけの上からな
0220デフォルトの名無しさん
2010/09/04(土) 12:47:12Perlでは"0"は偽扱い
JavaScriptでは"0"は真扱い
0221デフォルトの名無しさん
2010/09/04(土) 12:53:02とりあえず今の話題と「偽は0である」には何の関係もない。
言ってることが意味不明すぎる。
普通のプログラマなら、"7" == 7のような比較を許す言語では、
演算子==は2つのオペランドの型を揃えてから(要するに片方の値をもう片方の型に
暗黙的に変換してから)比較を行うんだろうと想像するだろう。
"7" == 7の場合は、恐らく"7"の方を整数に変換するルールを採用するんだろうね。
で、その方法にどこか曖昧さがあるのかよって。
まあ、あえて問題点も一つ指摘しとくけど、数値の文字列表現に桁区切りとか小数点が
入ってる場合は、そのルールが国や地域によって違うから問題がないわけじゃない。
0222デフォルトの名無しさん
2010/09/04(土) 12:59:04つ
> Perlでは"0"は偽扱い
> JavaScriptでは"0"は真扱い
0223デフォルトの名無しさん
2010/09/04(土) 13:01:18意味不明。ちゃんとした文章書け
0224デフォルトの名無しさん
2010/09/04(土) 13:02:56b=0
if a==b
どっち?
else
どっち?
end
曖昧だろ。
0225デフォルトの名無しさん
2010/09/04(土) 13:07:43仮に"0"が「特定の文脈において」bool値として扱われる言語があるとして、
それは「いつでも」そうであるということを意味しなければならない必然性はどこにもないはずだが...
本当に80代のジジイの思考力だな>>224
0226デフォルトの名無しさん
2010/09/04(土) 13:08:48一つの言語しかやらない似非技術者はそれでいいんだろうけど。
文法が違うだけならまだ許せるが
同じ書き方をして、答えが違うのは
混乱の元。
0227デフォルトの名無しさん
2010/09/04(土) 13:09:53お前は、一つの言語のルールさえ
覚えればいいから、それでいいんだろうさ。
0228デフォルトの名無しさん
2010/09/04(土) 14:22:27まあおすすめはしないがintとの比較も可能だろ。
0229デフォルトの名無しさん
2010/09/04(土) 14:26:230230デフォルトの名無しさん
2010/09/04(土) 14:41:257 は 7
'7' は 0x37
"7" はポインタ
0231デフォルトの名無しさん
2010/09/05(日) 13:33:150232デフォルトの名無しさん
2010/09/05(日) 14:03:020233デフォルトの名無しさん
2010/09/05(日) 14:12:370234デフォルトの名無しさん
2010/09/05(日) 17:27:09君は同じ(ような)ルールの言語をいくつ覚える必要があるの?
0235デフォルトの名無しさん
2010/09/05(日) 17:28:090236デフォルトの名無しさん
2010/09/06(月) 04:10:21言語の数だけ覚えるべきだろ。
元々コンピュータにあるのは数値だけだ。
型なんてものは元々存在しないのだから、型ってのは言語の都合でしかない。
そして言語の都合でしかないのだから、言語によって意味が違うのは当然のこと。
それを何か1つの言語の都合で統一したら他の言語が割を食う。
0237デフォルトの名無しさん
2010/09/06(月) 04:40:210238デフォルトの名無しさん
2010/09/06(月) 07:12:260239デフォルトの名無しさん
2010/09/06(月) 07:33:00問題は、「型=変数」って前提に合意が得られるかだな
0240デフォルトの名無しさん
2010/09/06(月) 08:06:12たぶん>238は「型=変数のサイズ」って区切るんだと思うよ
0241デフォルトの名無しさん
2010/09/06(月) 09:41:11わかります
0242デフォルトの名無しさん
2010/09/06(月) 09:50:28整数レジスタと浮動小数レジスタは別に決まってるだろうが
そんなことも説明されなきゃわからんのか
0243デフォルトの名無しさん
2010/09/06(月) 19:48:45馬鹿だろあんた
0244デフォルトの名無しさん
2010/09/06(月) 19:58:54高級な言語はもっと複雑な内部構造してるだろ。
JAVAなんか全部クラスだし。
0245デフォルトの名無しさん
2010/09/06(月) 21:58:410246デフォルトの名無しさん
2010/09/06(月) 22:04:34ちがうだろ。
0248デフォルトの名無しさん
2010/09/07(火) 17:40:25OO言語とか言われてるけど
結局のところ
Cからポインタ使えなくして
ガベコレ付けて
ぬるぽ例外出るようにしただけの
箱庭低級言語なんだよね
0249デフォルトの名無しさん
2010/09/07(火) 17:55:18・デフォでvirtual関数
・インタフェースの構文がある
・実装の多重継承を禁じた
C++に比べりゃだいぶ積極的だろ。OOPLとして。
0250デフォルトの名無しさん
2010/09/07(火) 18:04:590251デフォルトの名無しさん
2010/09/07(火) 19:57:470252デフォルトの名無しさん
2010/09/07(火) 22:00:32ポインタ無いのに低級とかww
0253デフォルトの名無しさん
2010/09/07(火) 22:31:50ないならなんでぬるぽなんてエラーメッセージが出るのかね
0254デフォルトの名無しさん
2010/09/07(火) 22:37:500255デフォルトの名無しさん
2010/09/07(火) 23:02:300256デフォルトの名無しさん
2010/09/07(火) 23:18:14無くしたのは「ポインタ演算」であってポインタそのものではない。
0257デフォルトの名無しさん
2010/09/08(水) 07:23:33javaが例外投げすぎなところはあると思うがぬるぽは全然問題無いだろ
0258デフォルトの名無しさん
2010/09/08(水) 07:38:49あんた読解力がないって言われるだろ。
0259デフォルトの名無しさん
2010/09/08(水) 09:43:000260デフォルトの名無しさん
2010/09/08(水) 13:44:58と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/ ←>>253
(_フ彡 /
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/ ←>>255
(_フ彡 /
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/ ←>>257
(_フ彡 /
0261デフォルトの名無しさん
2010/09/09(木) 23:07:510262デフォルトの名無しさん
2010/09/10(金) 21:08:02>>236は「元々コンピュータにあるのは数値だけ」に対して「型は言語の都合」としてるんだ。
文字列型とかリスト型とか、そういう根本的に違う構造の型の話だろ。
0263デフォルトの名無しさん
2010/09/10(金) 21:28:120264デフォルトの名無しさん
2010/09/10(金) 22:56:110265デフォルトの名無しさん
2010/09/10(金) 23:01:530266デフォルトの名無しさん
2010/09/10(金) 23:39:27これJavaの文法?
腐ってるね
0267デフォルトの名無しさん
2010/09/11(土) 00:51:13Javaぐらい覚えろ。
0268デフォルトの名無しさん
2010/09/11(土) 01:38:00s = Integer.toString(i);
も相当痛いよね
0269デフォルトの名無しさん
2010/09/11(土) 17:10:33金融計算の場合、誤差がないことを求められるんじゃなくて決められた丸め方(誤差の出し方)を守ることを求められてたような。
0270デフォルトの名無しさん
2010/09/11(土) 17:15:59> 一つは、恐らくビデオ回路の発振器の発振精度なんて恐らくそんな高くないから意味がない。
基準となるタイミング信号を用意して、全員それに合わせる方法で解決してる。
GenLockってのがそれ。
> フレームの間隔を1/60secで計算して生成した画像と、1001/60,000secで計算して生成した画像の差なんて、人間にはわからないw
1フレームでは分からないが、それが1時間とかあると3秒の差になったりする。
大した差じゃないと放置すると音や字幕がずれるので、全ての番組が終盤にいっこくどうに。
(実際にはこれも音声とビデオの周波数差を緻密に制御することで解決している)
0271デフォルトの名無しさん
2010/09/11(土) 17:43:31かならず銀行が儲かるように四捨五入するんですねわかります
0272デフォルトの名無しさん
2010/09/11(土) 19:12:24部下(下っ端)のせいにしてるけど、正しくは
丸め誤差を守るというのが顧客の要求仕様であるにもかかわらず、
プロジェクト計画段階で固定小数点の扱える金融計算ライブラリの導入を
決定する判断ができなかった上司(>>164)に原因がある
プロジェクトの問題を何でもメンバ(部下)のせいにするリーダ(上司)が多いのは現実だけど、
その大半の原因は部下ではなく、実はリーダの技術管理能力の問題にあった、というのは
よく知られた事実だったりする
0273デフォルトの名無しさん
2010/09/11(土) 19:14:24「固定小数点の扱える金融計算ライブラリ」がなにであるか、
普通の型にはどんな問題があるか知らない。
0274デフォルトの名無しさん
2010/09/11(土) 20:18:22>1フレームでは分からないが、それが1時間とかあると3秒の差になったりする。
>大した差じゃないと放置すると音や字幕がずれるので、全ての番組が終盤にいっこくどうに。
>(実際にはこれも音声とビデオの周波数差を緻密に制御することで解決している)
俺が言っているのはプログラム上の時刻と実時間との差。
君が言っているのは、映像と音声の同期の問題。
緻密に制御?何いってんの。
タイマ等を使って同じタイミングで数秒分の映像と音声のデータをそれぞれの
バッファにぶち込む、という誰でも思いつく方法でそんなものは実現できる。
0275デフォルトの名無しさん
2010/09/12(日) 10:04:270276デフォルトの名無しさん
2010/09/24(金) 01:07:45五捨五超入とか。
うちは自社開発だけど、ライブラリ売ってるのかな。
0277デフォルトの名無しさん
2010/09/24(金) 02:54:100278デフォルトの名無しさん
2011/02/18(金) 09:26:06Tcl辺りだとどうなのかな?
0279デフォルトの名無しさん
2011/02/18(金) 09:35:10シングルだと生だけど、ダブルは評価ありだからどのレベルまでやるかという話のような?
0280天使 ◆uL5esZLBSE
2011/07/06(水) 06:32:27.76> プロジェクトの問題を何でもメンバ(部下)のせいにするリーダ(上司)が多いのは現実だけど、
ハッァァァァァァァアアァァアァァ????????????????????
0281デフォルトの名無しさん
2011/11/11(金) 17:53:19.710282デフォルトの名無しさん
2011/11/28(月) 01:27:51.19> タイマ等を使って同じタイミングで数秒分の映像と音声のデータをそれぞれのバッファにぶち込む、という誰でも思いつく方法でそんなものは実現できる
概要を思いつけるのと実現できるのは全く別の話なんだけど。
そのタイマのタイミング(クロック周波数)を送信元と同じように作る必要がある。
たとえばGS4911Bってデバイスが実現してるのがそれ。
■ このスレッドは過去ログ倉庫に格納されています