#Julia言語 デフォルトのコンストラクタ:

struct Kuma{T}
p::Tuple{T, T}
end

とするだけで、デフォルトのコンストラクタ達

* Kuma(p::Tuple{T, T}) where T
* Kuma{T}(p) where T

が定義され、後者は引数の型変換も行なってくれる。

多くの場合にこれで十分。

github.com/genkuroki/publ… Image
#Julia言語 struct ~ end の内側に自前のコンストラクタの定義を書くと(内部コンストラクタを定義すると)、それらのデフォルトのコンストラクタは定義されなくなります。

複雑な内部コンストラクタが沢山書いてあるコードは読み難いの出注意。 Image
#Julia言語 デフォルトのコンストラクタを破棄したい理由がある場合や、`new`を使わないとできないことをやる場合以外に、内部コンストラクタは無理に使わない方が良いと思う。

使う場合にも内部コンストラクタの個数はできるだけ少なくするべき。

公式ドキュメント
docs.julialang.org/en/v1/manual/c… Image
#Julia言語

docs.julialang.org/en/v1/manual/c…

内部コンストラクタの個数はできるだけ少なくする。(多くの場合に0個にできる。)

複雑なコンストラクタは外部コンストラクタとして定義する。

おまけ

github.com/genkuroki/publ… Image

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with 黒木玄 Gen Kuroki

黒木玄 Gen Kuroki Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @genkuroki

12 Nov
#数楽 個人的な体験談

解析力学→正準量子化
量子力学→古典極限

について、ツイッター上で物理学的な議論になっているように見えますが、私は物理と無関係に数学として面白ければよい(面白くなければいけない)という立場なので、物理学的な議論とは別の話をしたいと思います。続く
#数楽 私はずっと(佐藤幹夫の意味での)τ函数の量子化をどのようにすればよいかについて考えていました。

ソリトン系は無限自由度系なので大変過ぎるので、その相似簡約として出て来るパンルヴェ系(所謂パンルヴェ方程式達の大幅な一般化)の"τ"の量子版の構成について考えることにしました。続く
#数楽 パンルヴェ系はLax形式ではモノドロミー保存系とみなせ、モノドロミー保存系は2次元量子共形場理論の共形ブロックの理論の古典極限とみなせ、私は共形ブロックの数学的理論の専門家だったので、自分にとって情報量の大きそうな部分を攻めるとよいと思いました。続く
Read 31 tweets
12 Nov
#Julia言語

C++は避けるべき。

できあいの統計関連のライブラリやパッケージを主に使うなら、Rが多分良くて、Pythonも良いと思います。

サンプルコードでアルゴリズムも示したいならば、ほぼJulia一択だと思います。

実際、須山敦志さんはJuliaを早くから使い始めて大成功しているように見える。
#Julia言語

machine-learning.hatenablog.com/search?q=Julia
で須山さんによるJuliaを利用した確率統計の学び方を知ることができる。Juliaは高速かつ強力かつ気楽に使えるので、試しに自力実装するのに非常に向いている。

amazon.co.jp/dp/4065259800
Juliaで作って学ぶベイズ統計学 (KS情報科学専門書)
2021/11/26
須山敦志
#統計 #Julia言語

コインを20回投げたときの表が出る回数の分布は正規分布で近似される。

Juliaのコードがシンプルであること、確率分布を意味するオブジェクトを作って、確率函数、乱数、プロットで使えること、などに注目!

nbviewer.org/github/genkuro… ImageImageImage
Read 14 tweets
12 Nov
子供のときに「くもわ図」や「きはじ図」「みはじ図」「はじき図」「木の下のハゲじじい図」(笑)で問題を解くことを教える先生に当たった人は、大人になった自分自身がそれで不自由を感じていなくても、「運が悪かった。そのような教え方は子供を害する」と思っておく必要があります。
❌「くもわ図」や「きはじ図」には算数が苦手な子を救う効果があるので、算数が苦手な子には「くもわ図」や「きはじ図」を教え込もう

と考えるのは非常にまずいです。

子供を害する(子供の頭を悪くする)教え方を、特に算数が苦手な子にはする習慣になると、その子が救われることがなくなる。😭
算数が苦手な真の原因は「公式を暗記できないこと」ではなく、「算数だと常識に沿って考えることができなくなる」や「計算が苦手」な場合が多いと思います。

計算が苦手でも常識に沿って考えることができてかつ公式の使用を強制されなければ問題を解ける場合が増えます。続く
Read 8 tweets
11 Nov
#統計 私は、WAICユーザーの大部分がWAICを誤用している疑いがある血思っています。

ベイズ統計ユーザーの多くは階層化されたモデルを使っていると思います。その場合には内部パラメータで積分してWAICを求める必要があります。手動でそうする必要があるし、計算量も大きく増える。
#統計 日本はWAICの発祥地なので(笑)、日本語圏ではWAIC(やLOOCV)の誤用に関する情報を手に入れ易い。

いれいさんもWAICを簡単に誤用できることと、誤用せずに済ませることが大変なことに気付いている。
#統計 HiroさんもWAICの誤用に気付いている。

Stanのような確率プログラミング言語で記述される「モデル」の情報(よくグラフィカルモデルで表現される)だけでは、予測分布が一意に決まらず、汎化誤差もWAICも確定しない。

通常の場合には「周辺化」版予測分布を使わないとアウト。
Read 10 tweets
11 Nov
#統計 slideshare.net/simizu706/waic を見ているのかな?

もしもそうなら松浦健太郎さんの

statmodeling.hatenablog.com/entry/waic-wit…
階層ベイズモデルとWAIC

が参考になると思います。StanやRの世界が当時より進歩しているので、もっと良い方法があるかもしれませんが、WAICの実装での考え方を学ぶことができます。
#統計 階層モデル(階層ベイズ)関連
#統計 階層モデル(階層ベイズモデル)達のモデル選択は結構大変だよという話関連。Stanなどの確率プログラミング言語で記述される「モデル」の情報だけから、予測分布の定義は確定しないので、情報量規準による予測精度の推測によるモデル選択は注意を要する。
Read 16 tweets
11 Nov
#超算数 かけ算順序問題について教育関係者の多くは「順序が逆なだけでバツにするのは好ましくない」と言います。

しかし、本音では「4人に3本ずつ鉛筆を配る場面で4×3と式を書く子はかけ算の意味を理解していない」と思っており、児童にかけ算の順序を教え込まなければいけないと思っていたりする。
#超算数 質問の内容は可能な限り具体的なものにする必要があります。

例えば、添付画像1のように聞いてみるとよいかもしれません。

「②の式を2×5にする子も問題なくかけ算を理解しているとどの先生も思っている」言ってもらえたらやっと信用できます。

続く Image
#超算数

教科書出版社側は②で5×2としなければいけないことを教え込むためにこの問題を載せています。添付画像1の教科書のマニュアル本の記述を見て下さい。

そしてそういう問題を出す直前のページで交換法則が一般的に成立している理由を教える構成になっています(添付画像2)。 ImageImage
Read 13 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Thank you for your support!

Follow Us on Twitter!

:(