Представьте себе, что я хочу взять цифры от 1 до 3 и образует матрицу таким образом, что каждое возможное спаривание представлено, например,Наиболее краткая J синтаксис для создания числовой матрицы
1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3
Вот монадическая глагол я сформулировал в J, чтобы сделать это:
($~ (-:@# , 2:)) , ,"0/~ 1+i.y
Первоначально я думал, что ,"0/~ 1+i.y
будет достаточно, но, к сожалению, получается следующий результат:
1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3
Другими словами, его форма 3 3 2, и я хочу что-то, чья форма равна 9 2. Единственный способ, который я мог бы исправить, - это влить все данные в новую форму. Я убежден, что должен быть более сжатый способ сделать это. Кто-нибудь знает?
Очень круто! Я просто проводил время, играя с '{' и выясняя смысл вышеприведенного синтаксиса, который теперь кристально ясен для меня. Я подожду несколько дней, чтобы узнать, есть ли еще более сжатые ответы, но я предполагаю, что вы, вероятно, прибили это. Благодаря! –
Добро пожаловать. Я редко могу найти хорошее применение для '{', и я считаю, что он не всегда делает то, что я хочу, но в том же списке он работает хорошо. – MPelletier
Да, J - не самый популярный язык SO. Это тоже не моя любимая. Сообщество J тесно связано с jsoftware.com, но обычно возникает такой вопрос, который вызывается из-под контроля, и расширяется в бесчисленные ответы на базирующуюся оптимизацию и специальный код. – MPelletier