Язык программирования Перфолента.Net - Официальный сайт

 Язык программирования Перфолента.Net - Официальный сайт.

Поиск   
Главная :: О проекте :: Контакты :: Обратная связь :: Благодарности :: ВходГость

   >   >   > 


Пример «Тест Кнута - Мужчина или Мальчик»

Файлы:

  • Тесты
    • Тест Кнута - Мужчина или Мальчик.перфо

Пример программы на языке программирования Перфо:



//Эта программа написана на языке Перфо

//Тест «мужчина или мальчик» был предложен компьютерным ученым Дональдом Кнутом 
//как средство оценки реализаций языка программирования ALGOL 60. 
//Целью теста было отличить компиляторы, которые правильно реализовали 
//«рекурсию и нелокальные ссылки», от компиляторов, которые сделали это не правильно.

//Интерпретатор Перфо выдаёт правильные ответы вплоть до числа 9
//а при числе 10 ему не хватает глубины стека, которую можно увеличить
//при необходимости средствами .Net


//Проверяемая функция

(функция (A k x1 x2 x3 x4 x5)
  (функция (B)
    (уст k (- k 1))
    (A k B x1 x2 x3 x4)
  )
  (если (<= k 0)
      (+ (x4) (x5))
      (B)
  )
)

//Программа проверки

(Вывод "Число : Результат" пс)

(Для (Инд 0 9)
    (Вывод Инд " : " (A Инд (функ () 1) (функ () -1) (функ () -1) (функ () 1) (функ () 0)) пс)
) 
 

//Таблица правильных результатов

// Число : Результат
//     0 :  1
//     1 :  0
//     2 : -2
//     3 :  0
//     4 :  1
//     5 :  0
//     6 :  1
//     7 : -1
//     8 : -10
//     9 : -30
//    10 : -67
//    11 : -138
//    12 : -291
//    13 : -642
//    14 : -1446
//    15 : -3250
//    16 : -7244
//    17 : -16065
//    18 : -35601
//    19 : -78985
//    20 : -175416



К началу статьи


Вернуться в раздел:
Примеры по языку Перфо

Перейти в раздел:
Примеры
  Поддержи проект!

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

  Новости:
      21.01.2026 На сайт добавлена статья "Конструируем класс. События"
      20.01.2026 Опубликован новый релиз 0.4.18.0_NY языка программирования Перфолента.Net
      29.12.2025 Анонс: Новая возможность - разрабатываем веб-сайты, веб-приложения и веб-API на Перфоленте!
      07.06.2025 Небольшие дополнения к документации на сайте - описание атрибута поля &Атомарное
      09.05.2025 На сайте опубликован релиз 0.4.16.0_SE дистрибутива языка программирования Перфолента.Net
      27.04.2025 Дополнена статья про циклы
      04.01.2025 Опубликован новый релиз дистрибутива языка программирования Перфолента.Net версии 0.4.15.0_CE
      23.09.2024 Опубликована новая статья: "Конструируем класс. Делегаты."
      30.08.2024 Опубликован новый релиз дистрибутива языка программирования Перфолента.Net версии 0.4.14.0
      24.05.2024 Обновлён справочный раздел сайта
      01.07.2023 Новая версия 0.4.13.0 языка программирования Перфолента.Net
       Все новости