新しいものを表示

で、それらを実際に実装してみたら、こうかけるようになった>< 

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と明示的な型変換を出来るだけという><; mstdn.nere9.help/@orange_in_sp

c# で独自の整数型、こうなる?><; 

// (最小の実装なのでキャストしまくらないと足し算すら出来ない><;)

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);
}
}

C# では演算子全部自分で書くしかない?><;(ジェネレータ作るべき?><;)

ていうかAdaでできる(らしい)こういう事をC# でしたい・・・>< 

type My_Int is range -100 .. 100;

って書くだけで、自分用の整数型が出来ちゃうらしい・・・><

整数で学ぶAdaの型 panathenaia.halfmoon.jp/alang/

この機能Adaみたいな間違えると人が死ぬ分野で使われる言語にあったらすごくおもしろそう><

orange さんがブースト

あくまで単位だから、りんごの個数とみかんの個数に対して四則演算はできないみたいなのとはちと違うけど。

スレッドを表示
orange さんがブースト

あっちの数値とこっちの数値は別物なんだけどという話は F# だとこんなのもありますね。
Units of Measureのススメ - Qiita qiita.com/adacola/items/b65752

?><
”C# では構造体struct(C++までの知識で言えば、フィールドしかないclassがstruct)を使えば
値型を自作できるらしい。”
型を学ぶ~C# の値型はJava人にとって驚きだ 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。みかんもリンゴも無い」

型原理主義者
「いくつって何が?><」

数学順序問題の話題も出てて、またTaPL読みたくなった><;(オレンジはその問題は型理論で解決できると考えてる><)

今日のこれおもしろかったしなんか共感した><;(一番最後に「刺々しい事言い過ぎたとか後悔してないですか?」みたいに聞かれてて、「お酒飲みながら放送見て、酔いがさめて青くなってあわててネットの評判見てる」みたいな事言ってた><;)--
林先生が驚く 初耳学 | MBS公式 mbs.jp/mimi/

古いものを表示
:realtek:

思考の /dev/null