タグ付けされた質問 「octave」

10
Octaveでのゴルフのヒント
オクターブでゴルフをするための一般的なヒントは何ですか?私は、少なくともオクターブ特有のゴルフ問題全般のコーディングに適用できるアイデアを探しています(例えば、「コメントの削除」は答えではありません)。回答ごとに1つのヒントを投稿してください。
18 code-golf  tips  octave 

3
Octaveの匿名関数を使用してベクターの要素を交換する方法は?
Octaveでは、ベクトル/マトリックス内の2つの要素を交換するのは非常に簡単です。 x='abcde'; x([4,1])=x([1,4]) x = dbcae 残念ながら、匿名関数内でこれを行う方法をまだ見つけていません。以下の関数は構文的には正しいですが、xベクトル全体ではなく、スワップされる2つの要素のみを返します。 f=@(x)(x([4,1])=x([1,4])) f(x) ans = ad 匿名関数を使用してゴルフのように望ましい動作を達成する方法はありますか?無名関数を使用して、この方法で複数の要素を交換できますか? 私は可能性がインデックスベクトルを作成しますf=@(x)x([4,2,3,1,5])が、動的なベクトルを作成する可能性があまりにもバイトの多くがかかります。

1
Octaveで匿名の再帰関数を定義する最も短い方法は何ですか?
Octaveの関数型プログラミングは大好きですが、実際には扱いにくいです。匿名の再帰関数を定義する最短の方法について疑問に思っています。 私はいくつかのアイデアを持っていますが、これらのアイデアを組み合わせてさらに短くする方法(または同様に短いがより汎用性の高い方法)があるかどうか疑問に思っています。この質問のために、再帰的にゼロまでカウントダウンしましょう(ペイロードをできるだけ単純に保つためです)。 私の推論が正しければ、次の例で使用した変数名は重複しません。目的の関数はでq(n)、常にゼロを返します。iは、カウンタ変数として使用され、のローカルスコープでf呼び出した再帰関数gですf。 44バイト、「のインライン定義f」 q=@(n)(f=@(g,i){@()g(g,i-1),i}{~i+1}())(f,n) 44バイト、「の引数リスト定義f」 q=@(n,f=@(g,i){@()g(g,i-1),i}{~i+1}())f(f,n) 44バイト、「の別個の定義f」 f=@(i,g){@()g(i-1,g),i}{~i+1}();q=@(n)f(n,f) 41バイト、「戻り値として必要な関数」 f=@(g)@(n){@()g(g)(n-1),n}{~n+1}();q=f(f) 現在の「勝者」は、flawrによるこの答えに触発されています。ただし、これを行うためのさまざまな方法が広範に考えられるため、おそらく誰かがさらに短い方法の組み合わせを考えることができます。 もちろん、目標は「フル」機能のために39バイト未満にすることです。オンラインで試してください!
12 code-golf  tips  octave 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.