годно
(drink
(if
(empty coffee)
(cofee_refilled cofee)
cofee
)
)
(if
(empty coffee)
(cofee_refilled cofee)
cofee
)
)
И да, сюда нужен извращенец с вариантом на прологе.
Я бы исходил из того что дринк тоже возвращает 0 если кружка пуста.
cofee_refill(!drink(cofee));
cofee_refill(!drink(cofee));
Тогда уж
cofee_refill(!drink(coffee), cofee)
Потому что в противном случае - как cofee_refill получит доступ к cofee? (ну разве что глобальная переменная в том или ином виде, но зачем?)
cofee_refill(!drink(coffee), cofee)
Потому что в противном случае - как cofee_refill получит доступ к cofee? (ну разве что глобальная переменная в том или ином виде, но зачем?)
Ну как бы тут Empty, Refill, Drink. Передаточные переменные к переменной Coffee.
ну а код выглядит так чтоб даже дебил понял
если кофе нет:
тогда налей
а в противном случае:
пей
ну а код выглядит так чтоб даже дебил понял
если кофе нет:
тогда налей
а в противном случае:
пей
Так он же ж всего один глоток тогда сделает. Надо цикл
так тогда ж делается лишнее отпивание из пустой кружки. Пусть возвращает, сколько осталось
% Сделал как в оригинале, вообще странно, что после наполнения не пьет.
me :- empty(coffee),refill(coffe);
me :- drink(coffee);
me :- empty(coffee),refill(coffe);
me :- drink(coffee);
это лисп?
Да, воспроизведенное по студенческим травмам подобие (ну ладно - на самом деле пролог был большей травмой :-) )
Пролог и Лисп... мой 3й курс примата
нужно в цикл обернуть
while (me.isWakeUp) {
}
while (me.isWakeUp) {
}
while(this.WakedUp) {
}
стиль кода же
}
стиль кода же
жабовская конвенция жи есть
А выше видим cofee.Empty - так что в проекте она послана. (Кстати, а не шарп ли? Там вроде как раз тот стиль - см. https://msdn.microsoft.com/en-us/library/x2dbyw72%28v=vs.71%29.aspx)
на пикрелэйтед да, похоже на шарп
Да, шарп.
Оно и на Экшн Скрипт похоже, если честно. Но кажись таки Джава.
Оно может быть и джавой, но стиль все же шарповсеий (в джаве принято методы именовать с маленькой буквы)
Костыли))
Woke
Woken.
booleans. boolean TIOBOSRALSYA = true;
if (TIOBOSRALSYA)
{
MATRIX.Neo.WakeUp();
}
if (TIOBOSRALSYA)
{
MATRIX.Neo.WakeUp();
}
Я у мамы программист
Исключения не обрабатываются.
Говно это, а не software developer.
Говно это, а не software developer.
Только вот должен ли этот код выбрасывать исключения? Предположу, что разве что конструктор.
з.ы. но да, целесообразность зависит от сложности операций :-)
з.ы. но да, целесообразность зависит от сложности операций :-)
а мы все как noexcept обозначили
И весело вылетаем с std::terminate.
Исключения обрабатываются конечным пользователем. Он же исполняющее устройство.
Оригинально
бля... скобочки на новой строке - это адский ад!
Дело вкуса. Я, например, наоборот считаю Java-стиль ущербным. В пользу обоих есть доводы и контрдоводы.
Аналогично. На мой взгляд, фигурные скобки на новой строке в больших проектах упрощают читабельность.
Собственно, на Stackoverflow есть хорошая дискуссия по этому поводу: http://programmers.stackexchange.com/questions/2715/should-curly-braces-appear-on-their-own-line
Собственно, на Stackoverflow есть хорошая дискуссия по этому поводу: http://programmers.stackexchange.com/questions/2715/should-curly-braces-appear-on-their-own-line
Я вообще удивился увидев их здесь. Гораздо логичнее было бы написать на CoffeeScript.
тоже =>
удивлён
удивлён
скушались два пробела вначале второй строки :(
Используй в этом случае alt+255
Как видишь, ничего сложного.
Как видишь, ничего сложного.
да, я просто не ожидал такой подставы :(
ПС:
контрол+шифт+U 00a0
ПС:
контрол+шифт+U 00a0
Как вариант - ставь вместо пробела
так эклипс по умолчанию код форматируует
eclipse тяжелая хрень. intellij idea тогда уже.
Да четырежды ёбанныя ярость.
Где у вас try-catch блоки?
Где у вас try-catch блоки?
А что может случится? Кружка разобьется? Это ловят на других уровнях.
В этом то и дело. Случиться может всё. И можно любую ошибку словить.
Но зачем? Let it fail. Если не знаешь, как обработать исключение - нафига его ловить?
Исключения так и называются, что используются для исключительных ситуаций.
Когда вы, блин, везде суете свои try-cath-хуетч, это уже if-else скорее обыкновенный, а не исключительная ситуация.
Реально, нафига все ловить, если не знаешь как исправить.
Собственно, гляда на ветвь дискусии понятно, почему Google забанил использование exception'ов, так всякие интерны со схожим мышлением засрут весь код catch'ами, которые только маскируют реальные ошибки.
Когда вы, блин, везде суете свои try-cath-хуетч, это уже if-else скорее обыкновенный, а не исключительная ситуация.
Реально, нафига все ловить, если не знаешь как исправить.
Собственно, гляда на ветвь дискусии понятно, почему Google забанил использование exception'ов, так всякие интерны со схожим мышлением засрут весь код catch'ами, которые только маскируют реальные ошибки.
Не будет кофе, самосвернёшься на работе под runtime error.
Это должно отлавливаться в refill.
Ради интереса (плохо ориентируюсь в шарпе и жабе, а тут, вероятно - один из них) - какое исключение выкинет, например, подобное (впрочем, на практике и объем будет подтягиваться из внешнего конфига, наверное, и ещё чёрти что - тогда, наверное, да) :
public function Refill() {
this.count = Coffee.CUP_SIZE;
}
...
public function Drink(IDrinkable drinkable) {
drinkable.count = 0;
}
Хотя, конструктор уж наверняка может (это было бы логично, но лень лезть в доки) - но тогда надо уже оборачивать весь работающий с cofee код же.
public function Refill() {
this.count = Coffee.CUP_SIZE;
}
...
public function Drink(IDrinkable drinkable) {
drinkable.count = 0;
}
Хотя, конструктор уж наверняка может (это было бы логично, но лень лезть в доки) - но тогда надо уже оборачивать весь работающий с cofee код же.
Не, товарищ прав.
drink() и refill() это явно процедуры ввода-вывода (I/O), без эксепшенов тут очень опасно.
drink() и refill() это явно процедуры ввода-вывода (I/O), без эксепшенов тут очень опасно.
Это если речь не о упрощённом моделировании. А если так - то да.
>> coffee.Empty
Инкапсуляция? Не, не слышал.
Инкапсуляция? Не, не слышал.
Инкапсуляция это не когда все поля private, это когда private всё что не соответствует интерфейсу абстракции.
Свойство же, а не поле. Поле скорее всего запривачено.
if (coffee == null)
{
coffee = new Coffee();
}
if (coffee.isEmpty())
{
coffee.reFill();
}
else
{
coffee.drink();
}
{
coffee = new Coffee();
}
if (coffee.isEmpty())
{
coffee.reFill();
}
else
{
coffee.drink();
}
Зачем проверка на NULL, если ты потом всё равно создаешь экземпляр класса, как в коде на чашке? оО
Херовый программер, у которого кофе само себя пьет...но вот то, что самовосполняется - заебца.
Вот-вот! Шаришь!
me.drink( coffee ); ?
this.drink(coffee) же.
Через указатель, конечно, лучше, но это немного неэтично.
Все-таки обращаться к себе любимому "это"... Как-то странно.
Все-таки обращаться к себе любимому "это"... Как-то странно.
this.is.me.drink(coffee);
Ложечка козырно вонзается.
хуйня. Что ж получается, если чашка пустая, то наливаем, но не пьём?!!!
а если это выполняется в цикле, но какого чёрта каждый раз создаётся экземпляр класса?
а если это выполняется в цикле, но какого чёрта каждый раз создаётся экземпляр класса?
щас тут родится очередной бесполезный опенсорс фрэймворк по описанию инструкций на кружках. с аспектами, паттернами, вся хуйня
могу билд скрипт на грэдле к нему сделать
могу билд скрипт на грэдле к нему сделать
while (HumanSystem.arbeiten && Alcohol.present)
{
if (!coffee.empty) coffee.delete();
coffee.Add(brandy,150);
coffee.Drink;
}
if (HumanSystem.arbeiten)
{
while (!(Find(&adventure_ass)&&(!Time.moning)));
switch (adventure_ass) {
case telka: running();break;
case police: SetToPolice (money); running();break;
case hospital: while(!HumanSystem.arbeiten);running();break;
default: FuBlya();break
}
}
HumanSystem.Sleep();
{
if (!coffee.empty) coffee.delete();
coffee.Add(brandy,150);
coffee.Drink;
}
if (HumanSystem.arbeiten)
{
while (!(Find(&adventure_ass)&&(!Time.moning)));
switch (adventure_ass) {
case telka: running();break;
case police: SetToPolice (money); running();break;
case hospital: while(!HumanSystem.arbeiten);running();break;
default: FuBlya();break
}
}
HumanSystem.Sleep();
Т.е. конструктор чашки без параметров может создать ее как пустой, так и полной, и потом это надо проверять? Плохо. Очень плохо.
Зачем я это написал?
+drink(cup) {
while (this.thirsty) {
if (cup.empty) this.refill(cup);
continue;
};
}(new Coffe());
+drink(cup) {
while (this.thirsty) {
if (cup.empty) this.refill(cup);
continue;
};
}(new Coffe());
Шарп?
Шарп.
стоит ли рассматривать ложку, как костыль или фичу?
тогда надо сахар и сливки включать в дело. цикл на помешать тоже не помешает.
if Coffee.Level = 0 then
Coffee:Refill();
else
Coffee:Drink();
end;
Coffee:Refill();
else
Coffee:Drink();
end;
Это делфи?
Он, но если точнее - Паскаль
Я даун и не поставил логический знак.
Это было ново лет пять так назад. На лиспе хоть перепишите...
Второй коммент к посту как раз на лиспе :)
Ну блядь обзадротили бедную кружку вдоль да поперек ...
Теперь и пить протифффвно!
Теперь и пить протифффвно!
Чтобы написать коммент, необходимо залогиниться