私はルビーに恋をしています。この言語では、すべてのコア関数は実際にはメソッドです。そのため、処理したいデータが匿名処理関数の本体から左に配置されている場合、後置表記を好みます。たとえば、array.map{...}
. このコードが読みやすいという利点があると思います。
しかし、Mathetic は機能的であるため (必要に応じて手続き型にすることもできます)、関数名がデータの左側に配置されるスタイルが決まります。マニュアルでわかるように、//
は、 のような引数のない単純な関数の場合にのみ使用されlist // MatrixForm
ます。Function が多くの引数を必要とする場合、マニュアルを書いた人は syntax を使用しますF[data]
。
大丈夫ですが、私の問題は、F[f,data]
たとえばDo[function, {x, a, b}]
. ほとんどの Mathematica 関数は(すべてではないにしても)引数を正確にこの順序で持っています –[function, data]
ではなく[data, function]
. ノートブックに名前付き関数をたくさん作成するのではなく、純粋な関数を使用して名前空間をきれいに保つことを好むので、引数function
が大きすぎる可能性があります。data
関数呼び出しのある行の後のコードの 5 ~ 20 行目に配置されます。
これが、邪悪なRuby の性質が私を制御下に置いたときに、そのような関数を後置式に書き直す理由です。
私にとっては重要なので、その純粋な関数 (潜在的に大きなコード) はデータ処理からすぐに配置されます。ええ、私はそれを行い、私は幸せです。しかし、次の 2 つのことがあります。
- これにより、Mathematica の強調表示パーサーの問題が発生
x
します。後置記法は青緑色ではなく青色で強調表示されます。 - Mathematica のマニュアルを調べるたびに、次のような例を目にします:
Do[x[[i]] = (v[[i]] - U[[i, i + 1 ;; n]].x[[i + 1 ;; n]])/ U[[i, i]], {i, n, 1, -1}];
、つまり、彼らは、Mathematica が読みやすい/サポートしやすい/などと考えているということです?!
これらの 2 つのことから、ここでこの質問をするようになりました: Ruby スタイルを使用する私はとても悪い少年ですか?これらの人のようにコードを書くべきですか、それとも大丈夫ですか? 心配する必要はありません。好きなように書く?