LINUX.ORG.RU

История изменений

Исправление SZT, (текущая версия) :

он должен понимать вот этот вот «C/C++»

Нельзя уметь понимать «C/C++» не умея понимать C

Человек с сишным бэкграундом с большой долей вероятности(если ему специально об этом не сказать) будет использовать в плюсокоде сишные конструкции, даже если это не является необходимым.

Ну конечно, только обычно в книгах по C++ черным по белому пишут, что надо избегать по-возможности писать на C++ как на C. Так что человек вообще-то и так должен знать, что на C++ почти всегда надо писать как на C++.

ну-ка, расскажи, как знание C поможет в освоении какого-нибудь эрланга, например

Да очень просто. Я-то сам не знаю этого эрланга, но глядя на простые примеры его кода и имея опыт программирования на C, я отлично могу понять его.

-module(count_to_ten).
-export([count_to_ten/0]).
 
count_to_ten() -> do_count(0).
 
do_count(10) -> 10;
do_count(Value) -> do_count(Value + 1).
Очевидно что на C это будет как-то так

unsigned int count_to_ten(void)
{
  return do_count(0); // count_to_ten() -> do_count(0).
}
unsigned int do_count(unsigned int i)
{
  if (i == 10) return 10;     // do_count(10) -> 10;
  else return do_count(i+1);  // do_count(10) -> 10;
}

Аналогично со всякими «классическими» примерами, вроде чисел фибоначчи и факториалов.
Если взять двух людей с одинаковыми способностями к программированию и проч., один не знает ни одного ЯП, другой знает C, то при прочих равных условиях, человеку со знаним C будет проще осваивать erlang, в этом я не сомневаюсь

Исходная версия SZT, :

он должен понимать вот этот вот «C/C++»

Нельзя уметь понимать «C/C++» не умея понимать C

Человек с сишным бэкграундом с большой долей вероятности(если ему специально об этом не сказать) будет использовать в плюсокоде сишные конструкции, даже если это не является необходимым.

Ну конечно, только обычно в книгах по C++ черным по белому пишут, что надо избегать по-возможности писать на C++ как на C. Так что человек вообще-то и так должен знать, что на C++ почти всегда надо писать как на C++.

ну-ка, расскажи, как знание C поможет в освоении какого-нибудь эрланга, например

Да очень просто. Я-то сам не знаю этого эрланга, но глядя на простые примеры его кода и имея опыт программирования на C, я отлично могу понять его.

-module(count_to_ten).
-export([count_to_ten/0]).
 
count_to_ten() -> do_count(0).
 
do_count(10) -> 10;
do_count(Value) -> do_count(Value + 1).
Очевидно что на C это будет как-то так

unsigned int count_to_ten(void)
{
  return do_count(0); // count_to_ten() -> do_count(0).
}
unsigned int do_count(unsigned int i)
{
  if (i == 10) return 10;     // do_count(10) -> 10;
  else return do_count(i+1);  // do_count(10) -> 10;
}

Аналогично со всякими «классическими» примерами, вроде чисел фибоначчи и факториалов