1つの要素ですべてのボックスを削除するにはどうすればよいですか?例えば。この中に、1つの要素ですべてのボックスを削除する
┌─────┬───┬─┬─────┐
│1 1 1│2 2│3│2 2 2│
└─────┴───┴─┴─────┘
:私はこれをオンにしたいと思います
┌─────┬───┬─────┐
│1 1 1│2 2│2 2 2│
└─────┴───┴─────┘
1つの要素ですべてのボックスを削除するにはどうすればよいですか?例えば。この中に、1つの要素ですべてのボックスを削除する
┌─────┬───┬─┬─────┐
│1 1 1│2 2│3│2 2 2│
└─────┴───┴─┴─────┘
:私はこれをオンにしたいと思います
┌─────┬───┬─────┐
│1 1 1│2 2│2 2 2│
└─────┴───┴─────┘
は、あなたの価値がa
であると仮定します
]a =. 1 1 1; 2 2; 3; 2 2 2
┌─────┬───┬─┬─────┐
│1 1 1│2 2│3│2 2 2│
└─────┴───┴─┴─────┘
ここにトリックは、各ボックスの長さを得ることです:
#@> a
3 2 1 3
e length> 1の場合、copyに渡すことができる「マスク」が得られます。
1 < #@> a
1 1 0 1
a #~ 1 < #@> a
┌─────┬───┬─────┐
│1 1 1│2 2│2 2 2│
└─────┴───┴─────┘
13:
が、これは暗黙ようにする方法を教えます:
13 : 'y #~ 1<#@>y'
] #~ 1 < #@>
を偶然にも、フォークの最後の位置にid
を置くために必要とするフックがまったく同じものですので、私たちも、することができますもう1つステップを簡略化してください。
remsingles =. #~ 1 < #@>
remsingles a
┌─────┬───┬─────┐
│1 1 1│2 2│2 2 2│
└─────┴───┴─────┘
@ダニエルの答えの別の見方。リストをフィルタリング
は非常に一般的であり、通常のイディオムは次のとおりです。
filter
を廃棄するものを保持して
0
される要素のための
1
を返す動詞である
(#~ filter)
。この場合、あなたのフィルターは、フィルターが
(1 < #) &>
ので、
remsingles =: #~ (1 < #) &>
remsingles a
┌─────┬───┬─────┐
│1 1 1│2 2│2 2 2│
└─────┴───┴─────┘
グレート答えは動詞
"every"
(&>
)として#
としてsize
とfor_each_element
を翻訳です。 「13:これを暗黙のうちにする方法を教えてくれるでしょうか?」とはどういう意味ですか? – Fuser97381
@ Fuser97381これは[explicit](http://www.jsoftware.com/help/dictionary/d310n.htm)ビルトインで、13とコードの文字列で呼び出すと明示的な関数を書き直そうとします変数 'x'と' y')を仮引数なしの暗黙の関数に変換します。それは暗黙のことについて学ぶための非常に有用なツールです! –
それは本当に面白いです。私はこの文書が、同じことを考えている人のために見つけました:http://jsoftware.com/help/jforc/explicit-to-tacit_converter.htm – Fuser97381