История изменений
Исправление den73, (текущая версия) :
Что-то XML получается. У каждой конструкции есть имя, с к-рого она начинается, атрибуты и содержимое. Прямо XML. Попробуем обособлять атрибуты с помощью (% %), ведь они нужны не всегда. А за ними идёт тело. Условие на списки смягчим и позволим вставлять в грамматику список пар имя-значение, идущий через пробел. Типа &body.
defun Xi (PipeKind, FlowMode, Rey)
(% docstring "множитель Дарси для трубы (без потоков)" %)
return
cond
// ожидается последовательность
// ВЫРАЖЕНИЕ ОПЕРАТОР ... ВЫРАЖЕНИЕ-N ОПЕРАТОР-N
(:Rey == 0:) 0.0
t
ecase PipeKind
Pipe
switch FlowMode
(% default error test 'eq %)
Lam 64.0 / Rey
Turb1 0.3164 / expt(Rey,0.25)
Turb2 (: // не поместился в строку - ставь скобки
0.0032 + 0.221 / expt(Rey,0.237)
:)
ends
Channel
ecase FlowMode
Lam 96.0 / Rey
ende
ende
endc
endd
Исправление den73, :
Что-то XML получается. У каждой конструкции есть имя, с к-рого она начинается, атрибуты и содержимое. Прямо XML. Попробуем обособлять атрибуты с помощью (% %), ведь они нужны не всегда. А за ними идёт тело. Условие на списки смягчим и позволим вставлять в грамматику список пар имя-значение, идущий через пробел. Типа &body.
defun Xi (PipeKind, FlowMode, Rey)
(% docstring "множитель Дарси для трубы (без потоков)" %)
return
cond
// ожидается последовательность
// ВЫРАЖЕНИЕ ОПЕРАТОР ... ВЫРАЖЕНИЕ-N ОПЕРАТОР-N
(:Rey == 0:) 0.0
t
ecase PipeKind
Pipe
switch FlowMode
(% default error test 'eq %)
Lam 64.0 / Rey
Turb1 0.3164 / expt(Rey,0.25)
Turb2 (: // не поместился в строку - ставь скобки
0.0032 + 0.221 / expt(Rey,0.237)
:)
ends
Channel
ecase FlowMode
Lam 96.0 / Rey
ende
ende
endc
endd
Исправление den73, :
Что-то XML получается. У каждой конструкции есть имя, с к-рого она начинается, атрибуты и содержимое. Прямо XML. Попробуем обособлять атрибуты с помощью (% %), ведь они нужны не всегда. А за ними идёт тело. Условие на списки смягчим и позволим вставлять в грамматику список пар имя-значение, идущий через пробел. Типа &body.
defun Xi (PipeKind, FlowMode, Rey)
(% docstring "множитель Дарси для трубы (без потоков)" %)
return
cond
// ожидается последовательность
// ВЫРАЖЕНИЕ ОПЕРАТОР ... ВЫРАЖЕНИЕ-N ОПЕРАТОР-N
(:Rey == 0:) 0.0
t
ecase PipeKind
Pipe
switch FlowMode
(% default error test 'eq %)
Lam 64.0 / Rey
Turb1 0.3164 / expt(Rey,0.25)
Turb2 (: // не поместился в строку - ставь скобки
0.0032 + 0.221 / expt(Rey,0.237)
:)
ends
Channel
ecase FlowMode
Lam 96.0 / Rey
ende
ende
endc
endd
Исправление den73, :
Что-то XML получается. У каждой конструкции есть имя, с к-рого она начинается, атрибуты и содержимое. Прямо XML. Попробуем обособлять атрибуты с помощью (% %), ведь они нужны не всегда. А за ними идёт тело. Условие на списки смягчим и позволим вставлять в грамматику список пар имя-значение, идущий через пробел. Типа &body.
defun Xi (PipeKind, FlowMode, Rey)
(% docstring "множитель Дарси для трубы (без потоков)" %)
return
cond
// ожидается последовательность
// ВЫРАЖЕНИЕ ОПЕРАТОР ... ВЫРАЖЕНИЕ-N ОПЕРАТОР-N
(:Rey == 0:) 0.0
t
ecase PipeKind
Pipe
switch FlowMode
(% default error test 'eq %)
Lam 64.0 / Rey
Turb1 0.3164 / expt(Rey,0.25)
Turb2 0.0032 + 0.221 / expt(Rey,0.237)
ends
Channel
ecase FlowMode
Lam 96.0 / Rey
ende
ende
endc
endd
Исправление den73, :
Что-то XML получается. У каждой конструкции есть имя, с к-рого она начинается, атрибуты и содержимое. Прямо XML. Попробуем обособлять атрибуты с помощью (% %), ведь они нужны не всегда. А за ними идёт тело. Условие на списки смягчим и позволим вставлять в грамматику список пар имя-значение, идущий через пробел. Типа &body.
defun Xi (PipeKind, FlowMode, Rey)
(% docstring "множитель Дарси для трубы (без потоков)" %)
return
cond
// ожидается последовательность
// ВЫРАЖЕНИЕ ОПЕРАТОР ... ВЫРАЖЕНИЕ-N ОПЕРАТОР-N
(:Rey == 0:) 0.0
t
ecase PipeKind
Pipe
switch FlowMode
(% default error test 'eq %)
Lam 64.0 / Rey
Turb1 0.3164 / expt(Rey,0.25)
Turb2 0.0032 + 0.221 / expt(Rey,0.237)
ends
Channel
ecase FlowMode
Lam 96.0 / Rey
ende
ende
endc
endd
Исходная версия den73, :
Что-то XML получается. У каждой конструкции есть имя, с к-рого она начинается, атрибуты и содержимое. Прямо XML. Попробуем обособлять атрибуты с помощью (% %), ведь они нужны не всегда. А за ними идёт тело. Условие на списки смягчим и позволим вставлять в грамматику список пар имя-значение, идущий через пробел. Типа &body.
defun Xi (PipeKind, FlowMode, Rey)
(% docstring "множитель Дарси для трубы (без потоков)" %)
return
cond
// ожидается последовательность
// ВЫРАЖЕНИЕ ОПЕРАТОР ... ВЫРАЖЕНИЕ-N ОПЕРАТОР-N
(:Rey == 0:) 0.0
t
ecase PipeKind
Pipe
switch FlowMode (%
default error
test 'eq %) // так мы обособляем атрибуты
//
Lam 64.0 / Rey
Turb1 0.3164 / expt(Rey,0.25)
Turb2 0.0032 + 0.221 / expt(Rey,0.237)
ends
Channel
ecase FlowMode
Lam 96.0 / Rey
ende
ende
endc
endd