LINUX.ORG.RU
ФорумTalks

подумалось..


0

0

Глядя на весь этот "синтактический сахар", а особенно просматривая коды которые невозможно читать, а можно только писать, подумалось: окамл - это такой функциональный паскаль.

> невозможно читать, а можно только писать

Вот этого не надо, понятность кода зависит от человека писавшего, а не от языка, исключения всязкие эзотерические языки, и то если в них не предусмотрены комментарии.

CrazyPit ★★★
()
Ответ на: комментарий от Begemoth

Если коментить каждые несколько символов:) Хотя бы понятно что будет делаться локально... Но для языков, где сущности можно называть словами моё высказывание точно верно.

CrazyPit ★★★
()
Ответ на: комментарий от CrazyPit

Нет, ну понятно что паскаль при большом желании можно прочесть и даже понять. Ничего трудного там нет. Просто желания этого нету. Вот также и с окамлом.

dissident ★★
() автор топика
Ответ на: комментарий от dissident

А паскаль то тебе чем не угодил? Писать на нём ещё тот ужос, но читать то что, если предеметная область понятна, если все сущности внятно названы, если код чистый хорошо разбит на логические участики и назначения каждой функции/модуля доментировано да ещё и с примерами, то тут хоть паскаль, хоть окамл, хоть питон. Другое дело, что некоторые языки подталкивают писать более понятно... Но если у человека в голове порядок то он на любом языке понятно напишет, правда такой человек скорее всего на некоторых языках просто не будет писать.

CrazyPit ★★★
()
Ответ на: комментарий от CrazyPit

> Кстати приведи пример непонятного потвоему кода?
да любой.

=== Cut ===
val update: 'a t -> key * 'a -> 'a t   (*not necessary*)
=== Cut ===

-> -> -> ->... Почему нельзя возвращаемое значение выделить от 
параметров? Да понятно что он один параметр но...

Это что за кошмар?

=== Cut ===
 | 4 ->
          print_string ("Queue is "^(if Queue_cyclic.isEmpty !q  then "" else "not ")^"empty.\n");
      | 5 ->
          print_string ("Queue is "^(if Queue_cyclic.isFull !q  then "" else "not ")^"full.\n");
      | 6 ->
          quit := true
      | _ ->
          print_string "IMPOSSIBLE!!!\n"
=== Cut ===

Мне сразу хочется написать:

||  \
=======-> print_string "IMPOSSIBLE!!!\n"
    /

Да зачем я привожу примеры открой любой код в окамлу неважно 
императивный или функциональный.

Вот еще операторы хорошие:

=== Cut ===
    if fabs(xi**3.0 -. a) <= (e *. fabs(a)) then
      xi
    else
      root3_tail (xi +. (a/.(xi**2.0) -. xi)/.3.0, e)
=== Cut ===

Ай молодца.

Это что за уродство:

=== Cut ===
let rec check_tree sub t =
  match (sub,t) with
      (N(l1,r1),N(l2,r2)) -> (check_tree l1 l2) && (check_tree r1 r2)
    | (L(x),L(y)) -> if x = y then true else false
    | _ -> false;;
=== Cut ===

И т.д. и т.п.

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

PS Что до паскаля то мне даже открывать какие-нибудь исходники на нем 
не хочется. Выглядит вот точно также ужасно как окамл.

dissident ★★
() автор топика
Ответ на: комментарий от dissident

Где уродство-то? Нормальный код, понятный

Begemoth ★★★★★
()
Ответ на: комментарий от dissident

ХЗ, я достаточно повехостно знаком с OCaml, но всё понял. Вот только тут переменные хреново названы, еслибы были более внятные название всё бы вообще прекрасно читалось.

CrazyPit ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.