Категорії циклів "for"


11

Я пам'ятаю , як одного разу читав деякі дослідження , де було проаналізовано тіло коду C, і результати були , що переважна більшість forциклів можна розділити на п'ять категорій, відповідних функціональних еквівалентів map, filter, foldі т.д.

Я, здається, більше не можу знайти цю статтю / статтю. Хтось може мені вказати на це?


3
Я знайшов щось подібне на переповнюванні стека: stackoverflow.com/a/2647704/1009414 Можливо, там ви знайдете інформацію про цю статтю.
Тавен

1
гомоморфізми, катаморфізми та анаморфізми і т. д., можливо, коштують Google, для циклів, яких немає в списках
jk.

Відповіді:


11

Це не точна відповідність тому, що ви просили, але я думаю, що це дуже близько до кореня вашого запитання.

На сторінці цього веб-сайту Loops обговорюється ряд циклів циклу.

  • підрахунок
  • відфільтрований-підрахунок
  • накопичувати
  • фільтрують-накопичують
  • пошук
  • крайній
  • екстремальний індекс
  • фільтр
  • карта
  • перетасувати
  • злиття
  • скам’янілий
  • пропущений стан

На них також є сторінка « Рекурсія», яка охоплює багато однакових шаблонів рекурсивно.


14
... Я сподівався, що "крайніх" циклів буде більше, ну, екстремальних ...;)
Izkata

0

Я думаю, що я це теж чув. Десь у SICP-відео чи книзі, я думаю, я чув, що більшість (якщо не всі) програм / алгоритмів можна виразити за допомогою потоків і фільтрів. Потоки починаються з лекції 6А.

Що стосується всіх циклів (для, поки, до-час і так далі), то всі вони реалізуються з міткою, порівнянням та умовним стрибком, щоб вони були просто синтаксичним цукром, щоб було легше читати та розуміти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.