あってるっぽさ><(???)
4次元まで考えが及んだのはコネクションマシンのおかげだったりする>< この本>< https://www.personal-media.co.jp/book/comp/062.html
「計算方法は全部同じだよね!>< 直線の長さも、正方形長方形の面積も、直方体の体積も、正八胞体の・・・なんて言うんだろ?><;」ってなった><
"直方体の体積の公式って、「ある頂点から延びる(?)3つ辺の長さを掛ける」"の方が正しいと思うしそう教える方が次元が変わっても90度の角(?)の形であれば求め方は同じだよね?>< みたいな所から、「あれ?><; そういえば平方とか立方とかって・・・」ってなった><
4次元の体積の次の単位、昨晩にマストドンで書いた掛け算順序問題の続きの話で、ツイッターの方に書いた直方体の掛け算順序問題の話が発端だったりする><
https://twitter.com/orange_in_space/status/955164301102231552
4次元って時間も含むってことなのかな。平方、立方、時方とか考えてみた。ただし使う場面が思い付かない。4次元目の単位が秒か時かで変わってきそうだし、特定の時間内の延べ立方みたいなとき、別に時間の注釈をつけそう。例)1時間に東京ドームn配分の水が~
>BT https://mstdn.nere9.help/@orange_in_space/99389862303595885
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
m^4(4次元メートル?><;)の本当の日本語読み、実はあったりして知ってる人が居たら教えてほしいかも><; https://mstdn.nere9.help/@orange_in_space/99389856873836212
m^2を平方メートル、m^3を立方メートルみたいに言う時に、m^4って日本語でなんていうんだろうとぐぐりまくった結果、「四乗冪米(しじょうべきめーとる?><;)」という単位を発明した><;(無いっぽい(?)ので英語で近い表現を見つけて日本語に訳して近い言葉を見つけた><;)
QMainWindowには普通のウィンドウシステムでよくありそうな色々な色々(?)があるっぽい?><(メニューとかアニメーションとかアイコン化(最小化)への対応とか><)
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
オレンジの発想ですごく問題になる点としては、そこらの小学校の先生ごとき(><;)が型システムを理解できるとは思えない点・・・><;(だって、掛け算順序問題に絡んでる数学者の大部分(?)ですらも型システムを理解できてない(であろう)とも言えるわけじゃん?><)
いまさらwikipediaの記事読んでみたら、型システムに触れた記述が・・・><;
かけ算の順序問題 - Wikipedia https://ja.wikipedia.org/wiki/%E3%81%8B%E3%81%91%E7%AE%97%E3%81%AE%E9%A0%86%E5%BA%8F%E5%95%8F%E9%A1%8C#「1つ分の数」×「いくつ分」の順序で書く方が合理的である
算数の授業で、さっき書いたコード( https://paiza.io/projects/hMp6bCN2dd8h0TzML4EvwQ )で言う所のMain()しか書かせないからおかしな事になってるんじゃん?>< 実際には型の定義までやらせてるのに!>< って言いたい><
つまり小学校のそういう みかんとかリンゴとかたかし君が出てくる問題って、さっきオレンジがC# で書いたような事をしてる、にもかかわらず、型の定義の部分を回答として書かせない(表現させない)から、掛け算順序問題みたいな奇妙な問題が起こるのでは?><
つまり、リンゴとみかんの合計の出し方を小学生が解く問題の場面では、リンゴとみかんを型として定義してどういう型変換(や演算子の定義?><;)をすればどういう数値が出るのか?(言い方を変えると、問題が意図する数値を計算できるのか?)を学んでるわけじゃん?><
型を無視して考えると「3+5は?」とかが解ければ良いわけじゃん?>< でも順序問題みたいな事を起こしてまで教えてるのは、「リンゴ3、みかん5」とかをどういう式(3+5とか)にすればいいのか?を学ぶ為じゃん?>< それ、型の定義そのものじゃん?><
ていうか小学校の算数で教えてる事って、実は型の構築(?)そのもの?><(つまり、式を組み立てる(?)って事は、みかんとかリンゴとかたかしくんとかを使って、どう計算すればよいのか?を定義してるわけじゃん?><)
このアカウントは、notestockで公開設定になっていません。
ていうか、掛け算順序問題を方システムの導入で解決しようとすると、さっき書いたようなコード(C# なので冗長なのはアレだけど)的なものを小学生が算数の授業で書く事になっちゃう?><;(それってもしかして本格的な(?)圏論?><;(数学苦手なのでわからない><;))
このアカウントは、notestockで公開設定になっていません。
小学校の算数の "いくつ" は整数型(?)であるみたいに受け取るべきなのかも?><;(って考えちゃうと「リンゴとみかんを足すと」「何が?><」って言えなくなってしまう><;)
このアカウントは、notestockで公開設定になっていません。
当たり前だけど、型推論してくれるから var c = a + b; でも型安全なまま(?)ちゃんと動くし小学校教諭並みには(?><;)ゆるふわな型システムだ><
出来ました><;(?)
C#で75行のコード書いたよ!ブラウザ上で実行できるよ! https://paiza.io/projects/hMp6bCN2dd8h0TzML4EvwQ
あ!><; 普通に継承でもできる!><;(継承にして、AppleCountとMikanCount のFruitCountへの型変換の定義は削除でおk><; 思い込みで出来ないと思ってた><;)
このアカウントは、notestockで公開設定になっていません。
AppleCount a = (AppleCount)5;
MikanCount b = (MikanCount)3;
FruitCount c = ((FruitCount)a + (FruitCount)b);
Console.WriteLine((int)c);
・・・ということは、リンゴとみかんの合計の果物の数を計算したい場合は、最低限『果物の数』の+演算子を実装すればよい・・・?><
あ><; 演算子も定義しないと全部intに型変換して計算するコードになるから型の意味が無い><;(=型安全じゃ無い)
さっきのc# のコードのやり方で、リンゴとみかんの数を型安全に計算したいのであれば、さっきのコードで『果物の数』と『リンゴの数』と『みかんの数』を作って、『リンゴの数』と『みかんの数』に『果物の数』への明示的な型変換をつければおk?><(言語仕様としての継承が使えないのでちょっとキモイけど><;)
MyInt_MinimumImpl a = (MyInt_MinimumImpl)1;
MyInt_MinimumImpl b = (MyInt_MinimumImpl)2;
MyInt_MinimumImpl c = (MyInt_MinimumImpl)((int)a + (int)b);
Console.WriteLine((int)c);
最小なので、つまり単にintと明示的な型変換を出来るだけという><; https://mstdn.nere9.help/@orange_in_space/99388786632884708
// (最小の実装なのでキャストしまくらないと足し算すら出来ない><;)
struct MyInt_MinimumImpl
{
private int _internalValue;
public MyInt_MinimumImpl(int value)
{
_internalValue = value;
}
public static explicit operator int(MyInt_MinimumImpl v)
{
return v._internalValue;
}
public static explicit operator MyInt_MinimumImpl(int v)
{
return new MyInt_MinimumImpl(v);
}
}
type My_Int is range -100 .. 100;
って書くだけで、自分用の整数型が出来ちゃうらしい・・・><
整数で学ぶAdaの型 http://panathenaia.halfmoon.jp/alang/ada/integer-types.html
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
?><
”C# では構造体struct(C++までの知識で言えば、フィールドしかないclassがstruct)を使えば
値型を自作できるらしい。”
型を学ぶ~C# の値型はJava人にとって驚きだ http://juujisya.jugem.jp/?eid=5
「リンゴが5個ありました。みかんが3個ありました。いくつでしょう?><」
「なにが?><;」
ってAdaでは当たり前っぽいけど、C# では簡単に書けない・・・?><(C# で独自の単純型ってどうやって作るんだろう?><)
お約束の「1+1=2っておかしい! だっておにぎり2個たしたら大きいおにぎり1個じゃん? さんすうきらい・・・」みたいなのも型理論を小学校の算数に引っ張ってくれば解決じゃん?><って気がしてる><(けどTaPL読んでないから”気がしてる”どまり・・・><;)
(足し算だけど><;)
さんすう「リンゴが5個ありました。みかんが3個ありました。あわせていくつでしょう?><」
(自称数学好きに多い?)型理論が無い数学(のサブセット)
「5は5であり3は3であり 5+3 あるいは3+5で答えは8。みかんもリンゴも無い」
型原理主義者
「いくつって何が?><」