Я хотел бы иметь возможность рассуждать о коде на бумаге лучше, чем просто писать ящики или псевдокод.Есть ли формализованная нотация высокого уровня для псевдокода?
Главное здесь бумага. На машине я, скорее всего, очень быстро использую высокоуровневый язык с linter/компилятором, а клавиатура ограничивает то, что можно сделать, несколько.
Тематическое исследование - это APL, язык, который мы полушутям описываем как «только для записи». Вот example:
m ← +/3+⍳4
(Пояснение: ⍳4
создает массив, [1,2,3,4]
, затем 3 добавляется к каждому компоненту, которые затем суммируются вместе и результат хранится в переменной м.)
Посмотрите, насколько это кратким! Представьте себе, что нужно набирать эти символы в своей повседневной работе! Но, записывая йоту и стрелки на доске, хорошо, экономит время и чернила.
Вот его Haskell эквивалент:
m = foldl (+) 0 (map (+3) [1..4])
И Python:
reduce(add, map(lambda x: x+3, range(4)))
Но принцип позади этих лаконичных языков программирования отличается: они используют слова и знаки препинания для описания высокого (например, fold
), тогда как я хочу писать символы для этих общих действий.
Существует ли такой формализованный псевдокод?
Заранее спасибо, ребята! – 0atman
Если это так, что вы можете использовать его для себя, не было бы легче придумать свои собственные обозначения, которые точно соответствуют вашему домену и вашему образу мышления, чем узнать нотацию, изобретенную кем-то еще? – svick
Просто быть любопытным (и я знаю только APL): действительно ли Python и Haskell-Samples эквивалентны? Где '3' в этом коде? (И BTW, я полностью согласен с Evans: APL, кажется, лучший ответ, особенно если вы ищете символы вместо слов) – MBaas