v=: ((1 2);(3 4);(0 5);<(2 1))
d =: (1,0.5,1,0.25);(0.5,1,0.75,0.25);(1,0.75,1,0);(0.75,0.25,0,1)
force=:(v ((0{>"0 v);])@{~ ] i.4) ,"1 0 <"0>(0{d)
force=:(v ((1{>"0 v);])@{~ ] i.4) ,"1 0 <"0>(1{d)
force=:(v ((2{>"0 v);])@{~ ] i.4) ,"1 0 <"0>(2{d)
force=:(v ((3{>"0 v);])@{~ ] i.4) ,"1 0 <"0>(3{d)
force=:(v ((4{>"0 v);])@{~ ] i.4) ,"1 0 <"0>(4{d)
force=:(v ((y{>"0 v);])@{~ ] i.4) ,"1 0 <"0>(y{d)
、力の 1列目は、米国を与える(N + 1)Vからベクトル番目。力のモナド関数の定義?力のV及びDが与えられると
2番目の列は、Vから私たち各ベクトルを与える。
3列2つのベクトルの間に定数を与えます。
つまり、(1 2);(1 2)
は3番目の列に1を持ちますが、(1 2);(3 4)
はそうではありません。 私たちはforce_constant 2
は、誰かが助けてもらえ入力した場合、我々はforce_constant 1
またはforce=:(v ((2{>"0 v);])@{~ ] i.4) ,"1 0 <"0>(2{d)
を入力する場合は、私たちに
force=:(v ((1{>"0 v);])@{~ ] i.4) ,"1 0 <"0>(1{d)
を与えるモナド関数を作りたいですか?
私は、コードレビューを調査するDanの提案を2回目にします。例を挙げると、このバージョンは、暗黙のうちに調べたり、引数として 'v'と' d'を与えることなく、上の動詞を単純化したものです: 'force_constant =:monad def '((y {v)、。 <"0 > y {d'' – Tikkanz
@Tikkanz私はそれ以上のことをして箱を捨てるように誘惑されるだろう。 M x N x 2の整数の配列にします。距離平面にダミー列( '0's)を追加して、それを規則的にします。 –