Возиться с бессмысленным кодом?

Я изучал языки Factor и J, чтобы экспериментировать с бессмысленным программированием. Основная механика языков кажется ясной, но получить представление о том, как подойти к разработке алгоритма, - это непростая задача.

Особый источник путаницы для меня заключается в том, как структурировать код так, чтобы было легко экспериментировать с различными параметрами. Под этим я подразумеваю такие вещи, в которых Mathematica и Matlab так хороши; Вы устанавливаете алгоритм, затем манипулируете переменными и наблюдаете, что происходит.

Как вы делаете это без явных переменных? Может быть я' Я думаю об этом все неправильно. Как мне подходить к этому в бессмысленном программировании?

7
задан Matthew Lundberg 13 May 2014 в 03:41
поделиться

1 ответ

Вот три важных совета, которые я нашел действительно полезными при работе с парадигмой конкатенации (применительно к язык программирования Factor в моем случае):

  • Беспощадно факторизируй свой код. Пишите очень маленькие функции: если в стеке больше 3-4 параметров, возможно, вы могли бы разбить его на более мелкие части.
  • Потратьте свое время на изучение комбинаторов потоков данных (би, три, расщепление, распространение,...). Они позволяют выражать общие шаблоны потоков данных, устраняя при этом необходимость сложной перетасовки стека.
  • Научитесь строить цитаты из других цитат. Используйте методы каррирования (карри, с, ...) для создания простых цитат из параметров стека, а когда все становится слишком сложным, используйте цитаты Фрида (словарь "жарить"). Они позволяют легко строить сложные вложенные цитаты из шаблонов без перетасовки стека.

И, как всегда, прочитайте и «пройдитесь» по существующему коду. В Factor довольно легко изучить среду выполнения и посмотреть, как все работает.

Что касается вашего конкретного источника путаницы, если у вас много входных параметров в вашем алгоритме, самое важное, что нужно сделать, — это изучить, как они будут использоваться. Сбор шаблонов потока данных. Вы действительно должны ДУМАТЬ о наилучшем способе «планирования» операций с наименьшим набором связанных параметров.

Это довольно трудный опыт, но он также действительно вознаграждает, когда удается. После этого мы чувствуем себя людьми-компиляторами..

Удачи!

9
ответ дан 7 December 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: