Сообщество Хекслета

gdfgfd lkjljklj 22 мая 2016 →

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

// removed

Дмитрий Городков 22 мая 2016 →

Добрый день! Спасибо за курс :))

В решении учителя есть такой код:

public Game(final Player p1, final Player p2, final Field field, final String name) {
    this.player1 = p1;
    this.player2 = p2;
    this.field = field;
    this.name = name;
    }

    public Player getPlayer1() {
        return this.player1;
    }

    public Player getPlayer2() {
        return this.player2;
    }

    public Field getField() {
    return field;
    }

    public String getName() {
        return name;
    }

не совсем ясно почему геттеры игроков возвращают значение через this.и в то же время геттеры Field and Name без this. Подскажите пожалуйста в чем разница и где можно почитать про это.

gdfgfd lkjljklj 22 мая 2016 →

Улучшения задания: попросить представить результат в формате 00:00 (сейчас 0:00) для однородности. Если это конечно не умышленно :) Столкнулся с ошибками теста, пока не удалил 0 в выходном формате часов 0${hours}.

// removed

Altay Sabyrbay 22 мая 2016 →

function ages ($array) {
    $groupedAges = group($array, function ($user) {
        return $user->getAge();
    });
    return flatten($groupedAges);
}

Вот так пытался решить, судя по видео, и схватывал ошибку Call to a member function, не понимал почему и заглянул в решение, а там return getAge($user), может об этом тоже в подсказках писать?

Альберт Салахов 22 мая 2016 →

Попробовал решить задачу - ничего не получилось. Посмотрел решение учителя и все равно не понимаю. Как происходит вызов car/cdr и передача им callable $pair Единственное что мне приходит в голову

$pair=cons(1,2); - инициализируем пару

echo car($pair); - как то так чтоли ?

Андрей Байкин 22 мая 2016 →

Изучаю Си. Нужно для работы с микроконтроллёрами. Сначала написал программу с ошибкой, потом исправил, но результата выполнения нет.

include <stdio.h>

// BEGIN (write your solution here) int main(void){ int lower, upper, step; int celsium, kelvin;

lower = 0;
upper = 300;
step = 20;

celsium = lower;

while(celsium <= upper)
kelvin = celsium + 273;
printf("%d : %d\n", celsium, kelvin);
celsium = celsium + step;

return 0;

} // END

Затем просто вставил программу учителя и опять нет результата. Получаю сообщение: make: Entering directory `/usr/src/app' rm -f solution gcc -g -Wall solution.c -o solution make: *** [test] Terminated

Run failed! Check and fix errors above!

Как это понимать?

Геннадий Николаев 22 мая 2016 →

Отличие let от var: Переменная, объявленная через var, видна везде в функции. Переменная, объявленная через let, видна только в рамках блока {...}, в котором объявлена.

А вот в уроке "Окружение", к сожалению, вы это не упомянули. И у новичков может сложиться мнение, что область видимости переменных в javascript на уровне блоков кода, хотя это справедливо только в случае использования let. Это очень сильно сбивает, особенно тех, кто захочет почитать об области видимости переменных JavaScript на других ресурсах - и натолкнется на противоречие с вашим уроком (ведь в других местах примеры приводятся с использованием var, а у вас let).

Поправьте меня если я где-то не прав.

Но несмотря на отдельные замечания, в целом по вашим курсам хочу сказать: возможно в Рунете аналогов нет, продолжайте в том же духе.

Илья Токарев 21 мая 2016 →

У меня какая-то странная проблема с usort - не сортирует, причем я могу вместо usort написать любую аброкадабру и ошибки нет. С fsort сразу заработало, проверил несколько раз - все правильно, после нескольких попыток заработало c usort само по себе, ничего не менял. Слишком сложно? Посмотрев решение автора, почувствовал себя дураком

function cmp2($x, $y, $i) {
    if($i == sizeof($x)) {
        return 0;
    }
    elseif($y > $x[$i]) {
        return -1;
    }
    elseif($y < $x[$i]) {
        return 1;
    }
    else return cmp2($x, $y, $i+=1);
}

function arrangeBiggestNumber($list) {
usort($list, function($x, $y) {
    if(strlen($x) > 1 && strlen($y) == 1) {
        return -cmp2(str_split($x), $y, 0);
    }
    elseif(strlen($x) == 1 && strlen($y) > 1) {
        return cmp2(str_split($y), $x, 0);
    }
    else {
        return strcmp($y,$x);
    }
});
return implode($list);
 }

Алексей Владимирович 21 мая 2016 →

Что значит "левая и правая части"? Хоть бы упоминание минимальное о чём речь!

Елена Кореневская 21 мая 2016 →

Привет! Читаю книжку, смотрю курс - мучает один вопрос, немного странный. Когда я усвоила define для чисел, но еще не перешла к составным процедурам, я попробовала вычислить степень числа 5

(define x 5) (define square (* x x)) square

25 - все посчиталось

а дальше я написала так (define x 6)- и попросила еще раз square

25 - как ни в чем не бывало, сказал интерпретатор.

Я теперь знаю, что квадрат переменной можно посчитать через define (square x). А мой вопрос - почему не получилось так, как сделала я? Почему, после того, как я задефайнила x 5, и потом вставила его в вычисление, я не смогла просто передефайнить его на 6, и снова запустить свой square? x как-то запоминается в окружении?

Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Node, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →