Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
в файлах заголовка (*.h) декларативным способом описываются структуры данных, функции и методы, а в файлах программы (*.c/*.pp/*.cpp) на императивном языке описываются действия над данными
PHP, который делится на HTML часть, описывающий структуру данных для визуализации, и PHP часть, предназначенную для описания действий по заполнению структуры данными.
Самый логичный и понятный фреймворк — это фреймворк, предоставляющий минимальный API с максимальным функционалом за ним.
В .h не бывает императивного кода, а в .c/.cpp описания структур данных?
HTML как часть PHP? Покажете где это в спецификации?
По этому критерию нормальные алгоритмы Маркова логичнее и понятнее, чем, например Django или Rails. Почему же их не используют для разработки приложений?
А, вообще, там, как бы, есть включения между ?> и <?, которые предназначены именно для вывода HTML
Историческое предназначение конструкции — переключение интерпретатора PHP в режим pass through.
Историческое предназначение конструкции — переключение интерпретатора PHP в режим pass through
В PHP первых (да и вторых) версий данной конструкции не было.
Другой пример — это PHP, который делится на HTML часть (все *ML языки являются декларативными), описывающий структуру данных для визуализации, и PHP часть, предназначенную для описания действий по заполнению структуры данными.
PHP, который делится на HTML часть [...] и PHP часть [...].
(defun factorial (n)
(cond ((minusp n) (error "Factorial of negative numbers is undefined"))
((< n 2) 1)
(t (* (factorial (- n 1)) n))))
(defvar *numbers* <?php
$count = 3;
$f = function($x) { return "(cons (* (- $x 1) (+ $x 1)) "; };
echo implode("", array_map($f, range(1, $count))) . "nil" . str_repeat(")", $count);
?>)
(format t "#include <stdio.h>
int main(void)
{
printf(\"%d\", ~D);
return 0;
}" (factorial (car <?php
echo str_repeat("(cdr ", $count - 1);
echo "*numbers*";
echo str_repeat(")", $count - 1);
?>)))
Два — где-то написано, что HTML — это часть PHP?
printf("<?%s","death of interpreter");
Вы придираетесь к словам[...]
и предоставляемого API
но тип данных в .c файле не опишешь
Может быть по тем же причинам, по которым не используют таблицу переходов состояний Тьюринга?
Нигде не показана равнозначность входящих данных и конфигов или API, поэтому не понятно банальное удвоение сущности, если зависимость не определена и более того не монотонна.
недоказанность монотонности зависимости функционала от входных данных
этот источник данных может дополнять входные данные, делая суммарный вход более простым, с точки зрения функционала
интерфейс это только обертка вокруг уже имеющегося функционала. В идеальном случае функционала добавляет самый минимум — только что бы обеспечить работу протокола передачи данных. Функционал собственно программы реюзиться
А причем тут незнание структуры конфига? конфиг, его структура может дополнять входные данные со всей метаинформацией до полного случая
Увеличение количества данных может привести к уменьшению правил преобразования. Пример я приводил выше.
Например имеем конечный ряд цифр ai, которые преобразуются в bi, по правилу f(a,i), но крайние элемент имеет исключение. При переходе к бесконечному ряду, правило сохраняется, но конечные исключения можно выкинуть.
Это, соответственно, не добавит счастливости пользователю.
Если с помощью фреймворка можно делать одну и ту же вещь несколькими разными способами, это означает что декларативный язык API этого фреймворка является избыточным.Это если больше не собираетесь применять этот фреймворк. И не факт, что совсем одну и ту же. А так — ХЗ зачем ещё они завтра понадобится, надо иметь запас.
База по языкам программирования: Принцип сохранения функционала