#j
#j
Вопрос:
Почему эти два выражения не эквивалентны в этой ситуации?
0 1 2 ,"(0)/ 0 1
0 0
0 1
1 0
1 1
2 0
2 1
0 1 2 ,"(_1)/ 0 1
|length error
| 0 1 2 ,"(_1)/0 1
На самом деле то, что я пытаюсь сделать…
a =: 0 1 2 3 4 5 ; 0 1 2 ; 0 1
Хотите получить все возможные комбинации
,"0/amp;>/ a
Этот код не работает
Это работает, хотя:
0 1 2 3 4 5 ,"(0 1)/ 0 1 2 ,"(0 0)/ 0 1
Но, конечно, я хочу писать в краткой форме
,"0/amp;>/ a
Проблема в том, что все термины должны быть
,"(0 1)/
но последнее
,"(0 0)/
Комментарии:
1. Я уже нашел еще один удивительный подход к получению этого результата: 6 3 2 #: i.6*3*2 Но я также хочу понять, как это сделать, используя косую черту через запятую.
2. Является ли это учебным упражнением? Вы против
{ a
или> , { a
против ?3. Я изучаю J, решая Project Euler. Потрясающий язык 🙂
Ответ №1:
Возможно, это поможет, так как то, что он делает, — это просто добавление в ранг 0
0 ,"(0)/ 0 1
0 0
0 1
1 ,"(0)/ 0 1
1 0
1 1
2 ,"(0)/ 0 1
2 0
2 1
Для реального решения проблемы, которую вы исследуете, вы заглянули в Каталог? {
{a
┌─────┬─────┐
│0 0 0│0 0 1│
├─────┼─────┤
│0 1 0│0 1 1│
├─────┼─────┤
│0 2 0│0 2 1│
└─────┴─────┘
┌─────┬─────┐
│1 0 0│1 0 1│
├─────┼─────┤
│1 1 0│1 1 1│
├─────┼─────┤
│1 2 0│1 2 1│
└─────┴─────┘
┌─────┬─────┐
│2 0 0│2 0 1│
├─────┼─────┤
│2 1 0│2 1 1│
├─────┼─────┤
│2 2 0│2 2 1│
└─────┴─────┘
┌─────┬─────┐
│3 0 0│3 0 1│
├─────┼─────┤
│3 1 0│3 1 1│
├─────┼─────┤
│3 2 0│3 2 1│
└─────┴─────┘
┌─────┬─────┐
│4 0 0│4 0 1│
├─────┼─────┤
│4 1 0│4 1 1│
├─────┼─────┤
│4 2 0│4 2 1│
└─────┴─────┘
┌─────┬─────┐
│5 0 0│5 0 1│
├─────┼─────┤
│5 1 0│5 1 1│
├─────┼─────┤
│5 2 0│5 2 1│
└─────┴─────┘
Каталог соответствует таблице добавления:
(>{a)-: 0 1 2 3 4 5 ,"(0 1)/ 0 1 2 ,"(0 0)/ 0 1
1
Комментарии:
1. Я подумывал о том , чтобы указать на
, b. 0
,,"0 b. 0
, и,"_1 b. 0
. Хотите включить их в свой ответ?2. О, да. Каталог, безусловно, является решением проблемы. Спасибо.
Ответ №2:
"_1
эквивалентно "0"_
Другими словами, «_1 формирует глагол, который просматривает все данные, чтобы найти свой ранг, а затем выводит другой глагол для работы на один ранг ниже этого.