dzz: Dizzy の冬 (Default)
[personal profile] dzz
А вот интересно, что используют благородные доны и донны, если им приспичило что-то посчитать, а под рукой ничего кроме компьютера нет? :)

Заметил, что в большинстве случаев я не запускаю калькулятор с графическими кнопками, а стартую в консоли python. И это удобно, ибо наглядно и функционально: вся запись видна целиком, количество скобок неограничено, математические функции тоже под рукой, при этом результат возвращается сразу, ибо интерпретатор умеет считать выражения в интерактивном режиме.

А у вас что на эту тему?

Date: 2018-12-21 10:02 am (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
А где для перла берут REPL?

Date: 2018-12-21 11:00 am (UTC)
From: [identity profile] geladen.livejournal.com
не видел такого ("perl -d" -- слишком мешкотно).
только "-e", только хардкор.

Date: 2018-12-21 11:23 am (UTC)
From: [identity profile] dzz.livejournal.com
В юникспайпе же:

echo 'print 1+2' | perl

Есть ещё perli aka

#!/usr/bin/env perl
do{print("perl> ");$_x=<>;chomp $_x;print(eval($_x)."\n")}while($_x ne "q")
Edited Date: 2018-12-21 11:26 am (UTC)

Date: 2018-12-21 11:41 am (UTC)
vitus_wagner: My photo 2005 (white)
From: [personal profile] vitus_wagner
Первое, очевидно REPL-ом не является. Посколкьку последняя букв в этой аббревиатуре stands for Loop.
Второе - уже как-то похоже. Но только не позволяет использовать многострочные конструкции. От чего сразу много теряет в юзабельности.

В Tcl специально для упрощения написания REPL-ов есть команда info complete, которая проверяет, является ли переданная ей строка завершенной командой Tcl (все скобки закрыты и все такое).
В perl подобного нет, поэтому все REPL-ы, которые я нашел в дистрибутиве, тащут за собой по мегабайту каких-то левых модулей.

Date: 2018-12-21 11:44 am (UTC)
From: [identity profile] dzz.livejournal.com
В первом случае loop тебе предоставляет unix shell :)

Строго говоря, совсем несложно наваять на шелле цикл ввода-вывода для многострочных конструкций perl-а, но есть одно "но": переменные между вызовами сохраняться не будут.
Edited Date: 2018-12-21 11:47 am (UTC)

Date: 2018-12-21 12:00 pm (UTC)
vitus_wagner: My photo 2005 (white)
From: [personal profile] vitus_wagner
Не только переменные. В первую очередь нужно чтобы можно было use Force::Luke; сказать, а в следующей строке эту силу использовать.

Date: 2018-12-21 12:20 pm (UTC)
From: [identity profile] dzz.livejournal.com
Да, согласен.

Можно, конечно, писать код смысловыми блоками с набором нужных модулей, а потом исполнять, но это не совсем интерактив. Правда, речь изначально шла про калькулятор :)))

January 2026

S M T W T F S
     123
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 1st, 2026 05:43 pm
Powered by Dreamwidth Studios