The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Доступен язык программирования OCaml 5.4.0"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от opennews (??), 10-Окт-25, 23:11 
Опубликован  релиз языка программирования OCaml 5.4.0, промышленного функционального языка программирования с акцентом на выразительность и безопасность разрабатываемого программного обеспечения. В OCaml гармонично сочетается функциональное ядро, императивные возможности, продвинутая объектная система и неповторимая модульная система...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=64035

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


2. "Доступен язык программирования OCaml 5.4.0"  +3 +/
Сообщение от Аноним (2), 10-Окт-25, 23:32 
Начало новостной заметки звучит как сказка Андерсена
Ответить | Правка | Наверх | Cообщить модератору

9. "Доступен язык программирования OCaml 5.4.0"  +12 +/
Сообщение от Аноним (9), 11-Окт-25, 00:50 
особенно "с акцентом на выразительность" - вырвиглазность
Ответить | Правка | Наверх | Cообщить модератору

19. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (-), 11-Окт-25, 07:23 
> особенно "с акцентом на выразительность" - вырвиглазность

Что делать, в новостях бывают опечатки :)

Ответить | Правка | Наверх | Cообщить модератору

26. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Хайль_тоталитарный_Либерализм_РФиНАТО (ok), 11-Окт-25, 09:28 
> особенно "с акцентом на выразительность" - вырвиглазность

Меня почти дословно опередил ;)

Хоть там при этой "выразительности" - ещё и безопасность же "повышенна"...

Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

5. "Доступен язык программирования OCaml 5.4.0"  +1 +/
Сообщение от Аноним (5), 11-Окт-25, 00:06 
> с акцентом на выразительность
> let ( * ) (x,~dx) (y, ~dx:dy) = x*.y, ~dx:(x *. dy +. y *. dx )

Хотелось бы услышать экспертное мнение о сабже от сишников, которые при каждой возможности воют о том, какой у Раста нечеловеческий синтаксис.

Ответить | Правка | Наверх | Cообщить модератору

6. "Доступен язык программирования OCaml 5.4.0"  +25 +/
Сообщение от Аноним (6), 11-Окт-25, 00:15 
Все верно, с акцентом на выразительность
Вот как тут не выразиться, глядя на такой код?
Ответить | Правка | Наверх | Cообщить модератору

7. "Доступен язык программирования OCaml 5.4.0"  –1 +/
Сообщение от Аноним (-), 11-Окт-25, 00:19 
> Хотелось бы услышать экспертное мнение о сабже от сишников,

Сейчас тебе расскажут что "все просто и понятно" :)
С другой местные кекспертные сишники обычно еще и яростно наяривают на lisp и scheme, а иногда даже на перловку.

Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

20. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (-), 11-Окт-25, 07:24 
> Сейчас тебе расскажут что "все просто и понятно" :)

Да вообще элементарщина. Ящеры совсем не палятся...

Ответить | Правка | Наверх | Cообщить модератору

22. "Доступен язык программирования OCaml 5.4.0"  +2 +/
Сообщение от Аноним (22), 11-Окт-25, 07:48 
В Lisp и Sсheme нет синтакиса в общем случае. Нет синтаксиса - нет проблем. Так что все действительно просто и понятно. Так что наяривали, наяриваем, и будем наяривать.
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

36. "Доступен язык программирования OCaml 5.4.0"  –1 +/
Сообщение от Bottle (?), 11-Окт-25, 13:59 
Вы эти сказки неофитам оставьте, тут конечно не сидят прожжёные самовары, но люди понимают, что это піздѣж чистой воды.
Ответить | Правка | Наверх | Cообщить модератору

44. "Доступен язык программирования OCaml 5.4.0"  +1 +/
Сообщение от freehck (ok), 11-Окт-25, 16:56 
> Вы эти сказки неофитам оставьте, тут конечно не сидят прожжёные самовары, но
> люди понимают, что это ###### чистой воды.

Справедливости ради стоит отметить, что базовый синтаксический анализатор для лиспа  действительно можно написать настолько компактно и коротко, что с некоторой натяжкой, если сравнивать его со всеми остальными языками в мире, можно сказать, что у лиспа "нет синтаксиса". Так, правда, никто естественно не делает, потому что не хотят жертвовать производительностью. )

Однако конечно же, утверждать, что синтаксиса в лиспах нет совсем -- не верно по определению.

Ответить | Правка | Наверх | Cообщить модератору

91. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от sailorTheCat (?), 13-Окт-25, 00:57 
Дело не в этом. [reader macros](https://lisper.in/reader-macros)'ы приводят к тому, что глядя на произвольную строку текста, нельзя заранее сказать, а не является ли она допустимым кодом на лиспе.
Ответить | Правка | Наверх | Cообщить модератору

99. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от freehck (ok), 13-Окт-25, 03:33 
Не понял... Неужто Вы в самом деле сейчас пытаетесь сказать, что главная фича лиспов -- это фатальный недостаток? =)
Ответить | Правка | Наверх | Cообщить модератору

110. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от sailorTheCat (?), 13-Окт-25, 11:53 
Недостаток или достоинство — зависит от применения. Но в данном случае это не важно, а важно, что у лиспа нет синтаксиса.
Ответить | Правка | Наверх | Cообщить модератору

8. "Доступен язык программирования OCaml 5.4.0"  +11 +/
Сообщение от Аноним (8), 11-Окт-25, 00:30 
Как сишник, не вижу противоречий, что у раста, что окамл, синтаксис непонятный.
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

10. "Доступен язык программирования OCaml 5.4.0"  –1 +/
Сообщение от Аноним (10), 11-Окт-25, 00:58 
Функциональные языки в целом не от мира сего, более-менее адекватно выглядят только созданные под конкреьные задачи Erlang (телеком) и F# (банкинг).
Ответить | Правка | Наверх | Cообщить модератору

13. "Доступен язык программирования OCaml 5.4.0"  +4 +/
Сообщение от Аноним (13), 11-Окт-25, 01:48 
>F# (банкинг).

Только вот F# это почти Ocaml, подобно тому, как C# почти Java.

Ответить | Правка | Наверх | Cообщить модератору

62. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (62), 12-Окт-25, 12:33 
https://github.com/janestreet/shexp

Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

12. "Доступен язык программирования OCaml 5.4.0"  +5 +/
Сообщение от Аноним (13), 11-Окт-25, 01:48 
На всякий случай сообщаю, что первые версии раста были написаны на окамле.

ЗЫ интересно, кто-то кроме меня на опеннете в состоянии понять, что здесь написано?

Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

21. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (-), 11-Окт-25, 07:25 
> На всякий случай сообщаю, что первые версии раста были написаны на окамле.

А первые версии си - вообще на ассемблере, вероятно. Не означает что толпа народа с энтузиазмом возьмется на ассемблере писать.

Ответить | Правка | Наверх | Cообщить модератору

37. "Доступен язык программирования OCaml 5.4.0"  +1 +/
Сообщение от Аноним (37), 11-Окт-25, 14:53 
Первые версии GCC, который тогда умел только C компилять, на каком-то Паскале.
Ответить | Правка | Наверх | Cообщить модератору

15. "Доступен язык программирования OCaml 5.4.0"  +2 +/
Сообщение от Аноним (-), 11-Окт-25, 04:58 
Всё ещё понятнее растосинтаксиса. Да даже у хаскеля синтаксис понятнее.
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

17. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Сосиска (?), 11-Окт-25, 06:53 
Выразительнее только у Perl
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

38. "Доступен язык программирования OCaml 5.4.0"  +4 +/
Сообщение от Аноним (37), 11-Окт-25, 14:55 
В смысле, вызывает поток выражений из уст программиста?
Ответить | Правка | Наверх | Cообщить модератору

48. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от OpenEcho (?), 11-Окт-25, 19:09 
> Выразительнее только у Perl

Сдаётся мне что именно изза "выразительности" он и потерял популярность в пользу более человеко-читаемых языков, но его "выразительность" хорошо унаследовал один популярный безопастный язык, не учась на ошибках сородича

Ответить | Правка | К родителю #17 | Наверх | Cообщить модератору

63. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 12-Окт-25, 13:26 
> Сдаётся мне что именно изза "выразительности"

Сдаётся мне что именно из-за ИЗБЫТОЧНОЙ (одно и то же разными синтаксическими конструкциями) "выразительности", так будет корректней.

Ответить | Правка | Наверх | Cообщить модератору

70. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от OpenEcho (?), 12-Окт-25, 18:58 
Ну да, в те времена было очень "круто" намастырить подобие брэинфака не задумываясь как потом кто-то будет это сопровождать, благо язык позволяет
Ответить | Правка | Наверх | Cообщить модератору

86. "Доступен язык программирования OCaml 5.4.0"  +1 +/
Сообщение от Аноним (9), 12-Окт-25, 23:44 
> Ну да, в те времена

Это как с математикой, пузырь формализма в начале 20 века

Ответить | Правка | Наверх | Cообщить модератору

24. "Доступен язык программирования OCaml 5.4.0"  +1 +/
Сообщение от Vkni (ok), 11-Окт-25, 08:19 
Наверное это троллинг. Если хочется на Камле писать код с плавающей точкой, то надо в преамбуле модуля написать

let (+) = Float.(+)

и т.д., а дальше писать с нормальными +-. Увы, нормально это в системах типов Хиндли-Милнера без классов типов не делается, а OCaml вынужден идти другим путём.

Зачем тащить эти +. *. в учебный пример? В оригинальном PR'е пример значительно разумнее:

let sum_and_product ints =
  let init = ~sum:0, ~product:1 in
  List.fold_left (fun (~sum, ~product) elem ->
    let sum = elem + sum in
    let product = elem * product in
    ~sum, ~product
  ) init ints

См https://github.com/ocaml/ocaml/pull/13498

И, в общем, понятно, что это идёт из кровавого ынтерпрайза (Улицы тёти Жени). И да, там оно имеет смысел.

Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

34. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от freehck (ok), 11-Окт-25, 13:52 
> Наверное это троллинг.

Скорее дань традиции.

> Если хочется на Камле писать код с плавающей точкой, то надо в преамбуле модуля написать
> let (+) = Float.(+)

Да в целом можно даже лучше[1], заменив сразу все операторы:

open Core.Float.O

[1] https://ocaml.org/p/core/v0.17.1/doc/core/Core/Float/O/index...

> и т.д., а дальше писать с нормальными +-. Увы, нормально это в системах типов Хиндли-Милнера
> без классов типов не делается, а OCaml вынужден идти другим путём.

Ну, нормально или нет -- это всё же вкусовщина. Вот мне например больше нравится с модулями заданных сигнатур работать.
Это ведь нагляднее: в 99.999% случаев мы в рамках заданного контекста один фиг работаем только с одним типом данных.

Впрочем, я не стану отрицать, что когда я впервые столкнулся с тайпклассами, Haskell изрядно подпортил общее впечатление умолчательной ленивостью.
Вполне возможно, что мой тезис более говорит о том, что я выбираю OCaml вместо Haskell, а не общие сигнатуры модулей вместо тайпклассов.

> Зачем тащить эти +. *. в учебный пример? В оригинальном PR'е пример
> значительно разумнее:
> let sum_and_product ints =
>   let init = ~sum:0, ~product:1 in
>   List.fold_left (fun (~sum, ~product) elem ->
>     let sum = elem + sum in
>     let product = elem * product in
>     ~sum, ~product
>   ) init ints

Дружище, при всём уважении, суть не в точке. Я подозреваю, что местным комментаторам List.fold_left сам по себе мозг вынесет куда больше, нежели она.
Это только для опытных функциональщиков навроде нас с тобой данный пример выглядит проще и понятнее.

> И, в общем, понятно, что это идёт из кровавого ынтерпрайза.

Думаю, что проще. Когда писали SML концепция модуля уже была, а вот концепции тайпкласса -- ещё не было.

Ответить | Правка | Наверх | Cообщить модератору

53. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Vkni (ok), 12-Окт-25, 02:22 
>> Наверное это троллинг.
> Скорее дань традиции.
>> Если хочется на Камле писать код с плавающей точкой, то надо в преамбуле модуля написать
>> let (+) = Float.(+)
> Да в целом можно даже лучше[1], заменив сразу все операторы:
> open Core.Float.O

Странно, что в Std этого не ставили. Известно, почему? Вроде бы обратную совместимость не портит.

> Ну, нормально или нет -- это всё же вкусовщина. Вот мне например
> больше нравится с модулями заданных сигнатур работать.
> Это ведь нагляднее: в 99.999% случаев мы в рамках заданного контекста один
> фиг работаем только с одним типом данных.

Это известное возражение, поддерживаемое большим процентом OCamlщиков. Принимается, но я вот принадлежу другому лагерю. Я надеюсь, что Габриэль Шерер всё-таки работает над Modular Implicit. Хотя и слабо.

> Вполне возможно, что мой тезис более говорит о том, что я выбираю
> OCaml вместо Haskell, а не общие сигнатуры модулей вместо тайпклассов.

Это, увы, не имеет значения, т.к. в самой INRIA есть существенный процент людей, выбирающих явное вместо неявного.

> Это только для опытных функциональщиков навроде нас с тобой данный пример выглядит
> проще и понятнее.

Тот, что в новости, если его делать на целых, конечно лучше. Да. Просто точки у +. меня бесят так, что аж кушать не могу.

> Думаю, что проще. Когда писали SML концепция модуля уже была, а вот
> концепции тайпкласса -- ещё не было.

И эта концепция модуля создала определённую культуру (см. выше).

Ответить | Правка | Наверх | Cообщить модератору

57. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от freehck (ok), 12-Окт-25, 10:43 
>> open Core.Float.O
> Странно, что в Std этого не ставили. Известно, почему? Вроде бы обратную совместимость не портит.

Потому что разработка Std контролируется INRIA, и этот учёный люд крайне неохотно принимает любые изменения. Именно поэтому Jane Street и создали собственную стандартную библиотеку Core на замену.

В Std нет такого количество сабмодулей в каждом модуле, Std в принципе заточен под простоту. А вот в каждом модуле Core зачастую есть сабмодули, предоставляющие интерфейсы к другим типам данных (и это лишь небольшой частный пример). Поскольку при построении такой системы модули много где и довольно часто становятся взаимно зависимыми, Core свои базовые модули хитро бутстрапит. Так что Core удобно пользоваться, но его самого тяжеловато строить. И таки да, в случае, если бы в OCaml были тайпклассы, ситуация вероятно была бы проще: вместо последовательного бутстрапа можно было бы просто расширять тайпклассы.

Как бы то ни было, хоть я и склонен рассматривать именно Core как современный OCaml, но принижать вклад INRIA не стану. У Std и у Core просто разные цели: один строит базу для языка, второй -- базу, которой удобно пользоваться инженерам.

> Это известное возражение, поддерживаемое большим процентом OCamlщиков. Принимается, но я вот принадлежу другому лагерю.

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

>> Это только для опытных функциональщиков навроде нас с тобой данный пример выглядит проще и понятнее.
> Тот, что в новости, если его делать на целых, конечно лучше. Да.
> Просто точки у +. меня бесят так, что аж кушать не могу.

Понимаю, понимаю. Но они же математики. Им совесть не позволила dx через int описать. =)

Ответить | Правка | Наверх | Cообщить модератору

105. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от fffemail (??), 13-Окт-25, 10:33 
Вы вот тут целую дискуссию развели, про достоинства и недостатки языков, но забыли, кажется одну небольшую мелочь - инфраструктура вокруг языка, в особенности IDE, системы управления зависимостями, сборки и прочее такое. А с этим у функциональных языков лучше всего у Scala (Idea + вся инфраструктура мира Java) и F# (VisualStudio + вся инфраструктура мира .NET). Для Haskell естьсредненького качества плагин в идею + Stack + некоторое количество библиотек, и я даже лично знаю одного живого разраба на Haskell. А вот когда я для OCaml пытался найти хоть какие-то инструменты (блокнот и даже vim/emacs не считаются), то нашел ровно ничего.
Ответить | Правка | Наверх | Cообщить модератору

106. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от freehck (ok), 13-Окт-25, 11:02 
> А вот когда я для OCaml пытался найти хоть какие-то инструменты (блокнот и даже vim/emacs не считаются), то нашел ровно ничего.

Плохо искали.

У нас как бы есть opam как система управления зависимостями (если именно это имелось в виду). Как основная система сборки нынче dune широко принята сообществом. Как IDE есть merlin, есть merlin-mode для интеграции в emacs, несколько лет назад появился ещё вон ocaml-lsp.

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

Ответить | Правка | Наверх | Cообщить модератору

109. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от fffemail (??), 13-Окт-25, 11:46 
>> А вот когда я для OCaml пытался найти хоть какие-то инструменты (блокнот и даже vim/emacs не считаются), то нашел ровно ничего.
> Плохо искали.

Искал хорошо, но давно. Последний раз я OCaml интересовался примерно в 2009-2010 году.

> У нас как бы есть opam как система управления зависимостями (если именно
> это имелось в виду). Как основная система сборки нынче dune широко
> принята сообществом. Как IDE есть merlin, есть merlin-mode для интеграции в
> emacs, несколько лет назад появился ещё вон ocaml-lsp.

Да, сейчас гугланул, количество инструментария увеличилось, что есть хорошо.

> Ну то есть как бы, если речь про подсветку, автодополнение, проверку синтаксиса,
> вывод типов на лету (между прочим, вот где вы ещё такое
> видели), поиск по символам и т.д. -- это есть и было,
> я ещё в 2012м всем этим пользовался.

Посмотрел merlin, это не IDE, это костыли, чтобы прикрутить некоторый функционал IDE в текстовые редакторы. Под IDE я понимаю что-то уровня продуктов JetBrains или хотя бы VisualStudio (НЕ VSCode, VSCode это просто текстовый редактор), где есть все сразу из коробки. В общем какой бы язык крутой не был, но массово им пользоваться без хороших инструментов не будут.

З.Ы. intellij-haskell оказывается всё, кончился в 2024 году, если верить дате архивации репозитория.

Ответить | Правка | Наверх | Cообщить модератору

111. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от freehck (ok), 13-Окт-25, 12:09 
> Посмотрел merlin, это не IDE, это костыли, чтобы прикрутить некоторый функционал IDE
> в текстовые редакторы. Под IDE я понимаю что-то уровня продуктов JetBrains
> или хотя бы VisualStudio (НЕ VSCode, VSCode это просто текстовый редактор),
> где есть все сразу из коробки.

В целом да, это -- действительно так и есть.

> В общем какой бы язык крутой не был, но массово им пользоваться без хороших
> инструментов не будут.

Не думаю, что OCaml прямо-таки стремится стать массовым. Всё-таки языки семейства ML -- довольно нишевые. Там же настолько высокий порог вхождения, что даже я со всем своим опытом не могу сказать, что знаю его прям на отлично. А если я про себя такого не могу сказать, значит с большой долей вероятности можно предполагать, что на всём земном шаре людей, владеющих OCaml на высоком уровне -- от силы несколько сотен человек. Есть ли смысла ради этого создавать под него специализированную IDE?

А впрочем, может потому нас так и мало, что мы IDE не создали...

Ответить | Правка | Наверх | Cообщить модератору

25. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (-), 11-Окт-25, 08:27 
Выразительность ≠ Читабельность. У чистой сишки одновременно имеются оба эти качества: выразитеьность и читабельность.
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

27. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (27), 11-Окт-25, 11:46 
> Выразительность ≠ Читабельность. У чистой сишки одновременно имеются оба эти качества:
> выразитеьность и читабельность.

Угу, угу
https://www.ioccc.org/2005/aidan/aidan.c


if(!C) {
        l=(o=S].O)?S].I:0; I=o?S].l%9+1:(S].O=i%9+1);
        for(;l<81;l++,I=S].O,o=0) if(!(s]>>10)) {
        for(;;I=I%9+1,o=1) {
            l0=0; if(o&&I==S].O) goto O;
            if(s]>>I&1) {
            S].l=I; S++].I=l; S]=S-1];
            N(I,); O>w&&(w=O); goto lO;
            }
        }
        }
    }
    lO: S].O=0; goto l0; l: if(!(l0=O)) { L=0; goto O; } O--;
    s,S].I] &=~ (1<<S].l);


Ответить | Правка | Наверх | Cообщить модератору

100. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (-), 13-Окт-25, 06:20 
>> Выразительность ≠ Читабельность. У чистой сишки одновременно имеются оба эти качества:
>> выразитеьность и читабельность.
> Угу, угу
> https://www.ioccc.org/2005/aidan/aidan.c

Фокус в том что на си это надо стараться специально и это далеко не самый крутой пример из ioccc. А на ocaml ЭТО с офигенной читаемостью - представлено прямо в новости как референсный пример.

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

Ответить | Правка | Наверх | Cообщить модератору

79. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (37), 12-Окт-25, 21:22 
Выразительность у Сишки? Увы, её там мало.
Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

117. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (117), 13-Окт-25, 18:08 
>У чистой сишки одновременно имеются оба эти качества: выразитеьность и читабельность.

Fixed: отсутствуют

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

30. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от freehck (ok), 11-Окт-25, 13:03 
>> с акцентом на выразительность
>> let ( * ) (x,~dx) (y, ~dx:dy) = x*.y, ~dx:(x *. dy +. y *. dx )

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

> Хотелось бы услышать экспертное мнение о сабже от сишников, которые при каждой
> возможности воют о том, какой у Раста нечеловеческий синтаксис.

Зачем вообще говорить с людьми, которые судят язык по синтаксису, не зная его?

Посмотри комментаторов величайшего уровня экспертизы выше и ниже. У них на лице написано, что им синтаксис глаз режет исключительно тем, что они никогда ни с чем подобным не сталкивались.
А тем временем, синтаксис OCaml -- это вообще-то синтаксис строго типизированного языка с автоматическим выводом типов, и так-то он является продуктом весьма серьёзной работы инженеров и математиматиков в течение последних нескольких десятков лет.

Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

43. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от NonRumata (?), 11-Окт-25, 16:15 
Я, конечно, извиняюсь.

Но напишите, как в вашем понимании будет понятно и выразительно (неважно на чем, Си, OCaml, Python, Erlang).

P.S. Я вот просто смотрю и явно вижу знакомую формулу и даже не представляю, как можно было понятнее написать.

Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

45. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 11-Окт-25, 16:56 
не выразительного языка по определению быть не должно, то что не читабельно для среднестатистического императивщика - да!!! Любой ЯК подвержен "синтаксическому диабету" и OCaml болеет этим.

> P.S. Я вот просто смотрю и явно вижу знакомую формулу и даже не представляю, как можно было понятнее написать.

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

Ответить | Правка | Наверх | Cообщить модератору

112. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (112), 13-Окт-25, 12:19 
Конечно не человеческий, Ocaml хоть как-то читать можно, а в Расте это всё:  let ( * ) (x,~dx) (y, ~dx:dy) = x*.y, ~dx:(x *. dy +. y *. dx ) еще должно быть во что-то безопасное завёрнуто, и этого безопасного стопитсот видов, да еще и не скомпилится с первого раза, потому что трейтсы не реализованы.
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

11. "Доступен язык программирования OCaml 5.4.0"  +1 +/
Сообщение от Аноним (11), 11-Окт-25, 01:07 
я верю что окамл может лучше!
https://github.com/jinyus/related_post_gen
Ответить | Правка | Наверх | Cообщить модератору

18. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (-), 11-Окт-25, 07:22 
> В OCaml гармонично сочетается функциональное ядро,
> императивные возможности, продвинутая объектная
> система и неповторимая модульная система.

...и абсолютно отбитый синтаксис, после которого Rust и C++ кажутся не такими уж и плохими.


       let ( * ) (x,~dx) (y, ~dx:dy) =
         x*.y, ~dx:(x *. dy +. y *. dx )

Все очень читаемо и понятно, разве нет? :). Блин даже автоцензор на такой код агрится. На что же это похоже?...
Ответить | Правка | Наверх | Cообщить модератору

28. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (28), 11-Окт-25, 13:01 
И что же тут непонятного? Простая перезагрузка оператора для дифференцирования. Матан 1 курс, алло!

Ответить | Правка | Наверх | Cообщить модератору

35. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от freehck (ok), 11-Окт-25, 13:58 
> И что же тут непонятного? Простая перезагрузка оператора для дифференцирования.

Да, вот только не перегрузка, а переопределение. Это важно.

Ответить | Правка | Наверх | Cообщить модератору

55. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (-), 12-Окт-25, 04:57 
> И что же тут непонятного? Простая перезагрузка оператора для дифференцирования. Матан 1 курс, алло!

1) В матане это выглядит немного не так.
2) Суммарно получился еще больший птичий язык что у математиков.

И да, если кто думал что матан это офигенно читабельно - обломайтесь, 90% двуногих в него вообще не умеет. И большая часть матанщиков - сидит в своей келье, "где-то там". Делает "что-то". Понимаемое в лучшем случае 1% двуногих и на 99% являющееся игрой ума нежели чем-то практически полезным.

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

Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

61. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (61), 12-Окт-25, 12:22 
Матанализ-то как раз многие понимают, те же инженеры. Вот теорию множеств да, там всё похитрее
Ответить | Правка | Наверх | Cообщить модератору

64. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 12-Окт-25, 13:28 
я вот никак не могу понять почему это всякое число в 0 степени должно быть принято на веру за 1, лол.
Ответить | Правка | Наверх | Cообщить модератору

65. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от freehck (ok), 12-Окт-25, 14:17 
> я вот никак не могу понять почему это всякое число в 0 степени должно быть принято на веру за 1, лол.

А нет никакой веры. В математике утверждение c^0=1 является не более, чем определением граничного случая. Но во-первых оно не во всех разделах принято, а во-вторых выбрано таким не произвольно, а для согласованности с поведением функций и их применением.

Так, например, предел функции y=c^x для любого c>0 при x->0 с обеих сторон -- равен единице. Поэтому во многих разделах математики удобно определить c^0=1.

При c=0 -- это уже случай особый. Какие-то разделы математики (например комбинаторика) принимают 0^0 равным единице чисто для согласованности. А вот в анализе непрерывных функций не принимают, потому что у функции z=x^y есть траектории, которые к единице не сходятся.

Собственно, чтобы не принимать ничего на веру, а именно что _знать_ почему оно так, и когда именно оно так -- для этого и нужно высшее образование. А без него всякие тебе подобные смотрят сериалы типа ТБВ и считают неимоверно смешным, когда молодой вундеркинд ставит профессора в тупик, доказав ему, что нуля не существует, хотя это всё уже сто лет в обед изученный вопрос. Так-то в математике есть куда более смешные вещи. Вот ты например знаешь, что сумма всех натуральных чисел равна -1/12 (да-да, именно минус)? И между прочим, есть строгое доказательство! А это всего лишь первый курс, позвольте заметить. =)

Ответить | Правка | Наверх | Cообщить модератору

72. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (61), 12-Окт-25, 19:10 
У нас есть хорошее свойство степени, что если мы a^x разделим на a^y, то получается a^(x-y). Поэтому доопределили нулевую степень как единицу и отрицательную как 1 разделить на число в положительной степени, чтобы удобно с этим работать.
Ответить | Правка | К родителю #64 | Наверх | Cообщить модератору

76. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 12-Окт-25, 19:42 
> У нас есть хорошее свойство степени

Откуда это свойство? Зачем этот банальный аргумент приводить. Вы сначала дайте определение операции возведения в степень, потом уже выводите из этого определения свойства, но никак не наоборот. Ну и следуя вашей логике 0^0 чему тогда равно? И не надо говорить, давайте этот вариант оставим не определенным, а чем не оставить общий вариант неопределенным? Такая же ахинея и с делением на ноль или взятием факториала. А все потому-что вы определили 0 как число и пытаетесь использовать его в "числовых законах" (арифметических функциях).

Ответить | Правка | Наверх | Cообщить модератору

80. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (61), 12-Окт-25, 21:39 
> Вы сначала дайте определение операции возведения в степень, потом уже выводите из этого определения свойства

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

Ответить | Правка | Наверх | Cообщить модератору

88. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 13-Окт-25, 00:00 
> Исходное свойство увидели из первого определения степени

Ну вот, что есть "первое определение степени"? Там разве определили x^y для x=0 и y=0? нет, такое определение считаем разве полным?  Вы просто приняли на веру, что для всех x>0 и y=0 пусть x^y будет 1, а для особого случая при x=0 и y=0 - вообще рассматривать не будем.

пс: Вы - не вы лично.

Ответить | Правка | Наверх | Cообщить модератору

94. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (61), 13-Окт-25, 01:22 
> Ну вот, что есть "первое определение степени"?

В начале мы определяем возведение числа a в натуральную степень n следующим образом: a^n = a * a * ... * a (n раз умножили a на себя)

Мы заметили, что есть приятное свойство: a^n * a^m = a^(n+m).

Видим так же, что и в обратную сторону, если m > n, то a^m разделить на a^n = a^(m - n).

Но что если m = n? По формуле выходит a^n/a^n = a^0. Пока что (пока что!) это для нас не понятно что, мы ведь не умеем возводить в нулевую степень, только в натуральную. Заметим, однако, что a^n/a^n = 1, не по формуле, а просто с точки зрения арифметики, мы ведь делим число само на себя. И тут возникает идея - мы можем попробовать сами доопределить операцию возведения в степень для нуля.

Теперь наше новое определение возведения в степень такое:
a^0 = 1, а для натурального n a^n = a * ... * a (n раз)

И это определение по итогу согласуется со всеми свойствами степени: с a^n * a^m = a^(n+m), (a^n)^m = a^(nm) и т.д.

Аналогично можно доопределить и отрицательные показатели степени.

> Вы просто приняли на веру, что для всех x>0 и y=0 пусть x^y будет 1

Мы не приняли на веру. Мы сами определили, что эта запись будет означать вот это. И при этом, определив это значение так, мы получили, что оно согласуется со всеми свойствами степени. Значит это вполне годное доопределение.

В математике вообще много чего получается доопределением. Те же комплексные числа - мы взяли и определили i как число, которое при возведении в квадрат даёт -1. Получилась стройная непротиворечивая алгебраическая система, помогающая решать задачи.

Не всякий раз и не всякую вещь получается доопределить, но вот тут всё складно

> для особого случая при x=0 и y=0 - вообще рассматривать не будем.

Отдельно про 0, почему он особый - деления на 0 нет. Мы ввели нулевую степень из рассуждений о a^n/a^n = 1, а на ноль делить нельзя. Поэтому ноль имеет все основания быть особым случаем.

Вот как раз деление на ноль - это пример операции, которую трудно элегантно доопределить. Можно признать a/0= ±Inf в зависимости от знака а, но только операции с этими бесконечностями не понятно как вводить, они ведут себя не так, как обычные числа. А как определить 0/0 - вообще не ясно. В IEEE754 (тот ещё зверь) определили как NaN :)

Ответить | Правка | Наверх | Cообщить модератору

97. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 13-Окт-25, 03:10 
> В начале мы определяем возведение числа a в натуральную степень n следующим
> образом: a^n = a * a * ... * a (n
> раз умножили a на себя)

Натуральной степенью n является число из натурального ряда? Если да, тогда оно вот такое

1, 2, 3, 4, 5, 6, 7 и так далее

https://ru.wikipedia.org/wiki/Натуральное_число

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


> Мы заметили, что есть приятное свойство: a^n * a^m = a^(n+m).
> Видим так же, что и в обратную сторону, если m > n,
> то a^m разделить на a^n = a^(m - n).
> Но что если m = n?

Все верно.

> По формуле выходит a^n/a^n = a^0.

Нет, формально выходит a^n/a^n = a^(n-n) либо (a/a)^n = a^(n-n)

> Пока что (пока что!) это для нас не понятно что, мы
> ведь не умеем возводить в нулевую степень, только в натуральную. Заметим,
> однако, что a^n/a^n = 1, не по формуле, а просто с
> точки зрения арифметики, мы ведь делим число само на себя.

Именно, что при подстановки в левой части получим (при n=1) 1 = a^(1-1). Раскроем скобки справа и чисто формально запись вида a^0 является не корректной по выше данному определению. Так как определена она для всех натуральных n >= 1.

> И тут возникает идея - мы можем попробовать сами доопределить операцию возведения
> в степень для нуля.

Эта идея должна быть конструктивной!!! Потому-что, просто взять и сказать, что у нас в левой части равенства стоит единица, то и в правой должна стоять единица, а все потому, что это ведь "равенство", да равенство, но формально некорректное равенство. Отсюда и всякая ересь про "пустое произведение".

//en.wikipedia.org/wiki/Empty_product

(перевода почему-то нет кхмммм)

> Теперь наше новое определение возведения в степень такое:
> a^0 = 1, а для натурального n a^n = a * ...
> * a (n раз)

Хорошо, тогда почему при а = 0 и n >= 1 a^n = 0?

Это типа 0^n = 0 * 0 * 0 ... * 0 (n раз) - конструктивно, так ведь?

А вот a^0 = a * a * ... (это  типа ноль раз умножь, как это сконструировать?)

> Мы не приняли на веру. Мы сами определили, что эта запись будет
> означать вот это.

Вы приняли на веру, ибо формально даже эта запись не корректна. Я бы согласился бы с тем, чтобы вообще не определять для нулевой степени, но нет надо именно 1 и не 0.

> И при этом, определив это значение так, мы
> получили, что оно согласуется со всеми свойствами степени. Значит это вполне
> годное доопределение.

Это самообман, формально (синтаксически) это некорректно. Условное определение? Ок пусть будет, но где конструктив?

> В математике вообще много чего получается доопределением. Те же комплексные числа -
> мы взяли и определили i как число, которое при возведении в
> квадрат даёт -1. Получилась стройная непротиворечивая алгебраическая система, помогающая
> решать задачи.

Необходимость в этом должна быть, а не просто жонглирование.

> Отдельно про 0, почему он особый - деления на 0 нет. Мы
> ввели нулевую степень из рассуждений о a^n/a^n = 1, а на
> ноль делить нельзя. Поэтому ноль имеет все основания быть особым случаем.

Деление на ноль ровно такое же принятие на веру.

> Вот как раз деление на ноль - это пример операции, которую трудно
> элегантно доопределить. Можно признать a/0= ±Inf в зависимости от знака а,
> но только операции с этими бесконечностями не понятно как вводить, они
> ведут себя не так, как обычные числа.

А в чем трудность то? Свойств у деления подходящих нет?

> А как определить 0/0
> - вообще не ясно. В IEEE754 (тот ещё зверь) определили как
> NaN :)

А NaN/NaN как определять будем? :))) вот такое мракобесие, формальное жонглирование, которое не имеет никакого отношения к природе чисел.

Ответить | Правка | Наверх | Cообщить модератору

102. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (61), 13-Окт-25, 09:27 
> Вы приняли на веру, ибо формально даже эта запись не корректна.
> Это самообман, формально (синтаксически) это некорректно.

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

Можно было бы считать, что это новая операция вообще, которая на натуральных числах ведёт себя как старая, на 0 даёт 1, на -1 даёт 1/a. Но зачем, ведь она согласуется со всеми свойствами, что по сути расширяет старую операцию на целочисленные показатели степени.

> А вот a^0 = a * a * ... (это  типа ноль раз умножь, как это сконструировать?)

Мы приняли по определению, что это равно 1. Мы могли бы принять по определению и другое значение, но тогда бы свойства степени про сложение/умножение показателей перестали бы в общем случае работать.


Вы в целом критикуете неконструктив (хотя то доопределение конструктивно, алгоритм есть, просто вернуть 1 при показателе 0) и формальные манипуляции, но я-то сторонник философии формализма, что математика - это формальные манипуляции и есть
https://en.wikipedia.org/wiki/Formalism_(philosophy_of_mathe...)
Покуда получаем непротиворечивые результаты, в чем проблема формальных манипуляций-то?

Ответить | Правка | Наверх | Cообщить модератору

108. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от freehck (ok), 13-Окт-25, 11:25 
Анончик (61), тебе знакома поговорка "на вопросы одного дуpaкa и сто мудрецов не ответят"?
Ответить | Правка | Наверх | Cообщить модератору

115. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 13-Окт-25, 17:55 
> Она была некорректна для нашего первого определения, на натуральных числах. Потом мы перешли к рассмотрению целых чисел, и доопределили для целых показателей степени (нулевых м отрицательных).

переопределили - условно определили.

> Мы приняли по определению, что это равно 1. Мы могли бы принять по определению и другое значение, но тогда бы свойства степени про сложение/умножение показателей перестали бы в общем случае работать.

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

> хотя то доопределение конструктивно, алгоритм есть, просто вернуть 1 при показателе 0

Это не конструктивный алгоритм, таким макаром я все степени могу определить и любую операцию, а обосновывать как буду? Я не согласен, потому-что не вижу конструктивного обоснования.

> но я-то сторонник философии формализма, что математика - это формальные манипуляции и есть

Математика не просто формальное жонглирование.

> Покуда получаем непротиворечивые результаты, в чем проблема формальных манипуляций-то?

Ну а где доказательство того, что принятое на веру a^0 = 1 не противоречит ничему?

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

1) Дан числовой ряд (натуральный с нулем): 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... бесконечный неважно это.

2) Этот ряд поделим на группы чисел по 8 в каждой: 0 1 2 3 4 5 6 7 - первая группа, 8 9 10 11 12 13 14 15 - вторая и так далее.

3) Каждому числу в каждой такой группе (октете) сопоставим "символ", отражающий "сущность" числа. (что есть сущность будет чуть ниже), но первую группу оставим пока не сопоставленной.

4) Определим "символ" (по сути это некоторое множество) и "сущность" (а это свойство элементов этого множества) чисел, для всех групп (октетов), кроме первой (0 1 2 3 4 5 6 7)

Формат:

символ (символ можно взять произвольный, возьму обычные буквы) - сущность (структура числа)

a - степени нечетных простых чисел. 3, 5, 7, 9, 11 ... p^k, где k >= 1

b - нечетные составные в произвольных степенях. 15, 21, ... p*q, p*q*r, (p^k)*(q^l)*(r^m) и так далее, произвольное количество вхождений степеней (distinct primes)

c - степени двойки. 8, 16, 32 ... 2^k, где k >= 3. Почему 3? Вот тут и загвоздочка о которой ниже будет сказано. А пока этим "символом" будем сопоставлять все числа, которые являются степенями двойки, начиная с 8 = 2^3.

d - четные числа вида 2^1 * n, где n это любое число, символ которого равен b. 10 = 2^1 * 5, 30 = 2^1 * 15 = 2^1 * (3 * 5).

e - четные числа вида 2^2 * n, где n это любое число, символ которого равен b. 60 = 2^2 * 15 = 2^2 * (3 * 5).

f - четные числа вида 2^k * n, где n это любое число, символ которого равен b, а k >= 3. 120 = 2^3 * 15 = 2^3 * (3 * 5).

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

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

0 1 2 3 4 5 6 7
---------------
? ? ? ? ? ? ? ?

############################

8 9 10 11 12 13 14 15
---------------------
c a d  a  e  a  d  b

############################

16 17 18 19 20 21 22 23
-----------------------
c  a  d  a  e  b  d  a

############################

24 25 26 27 28 29 30 31
-----------------------
f  a  d  a  e  a  d  a

############################

32 33 34 35 36 37 38 39
-----------------------
c  b  d  b  e  a  d  b

...... И так далее сопоставляем каждое число со своим символом.

Собрав во едино статистику по группаv, получилась такая картина символов (паттерн).

(c|f) (a|b) (d) (a|b) (e) (a|b) (d) (a|b) - паттерн групп (октетов)

| - знак или, (c|f) - означает число либо сопоставляется с символом "c", либо с символом "f".

Для наглядности запишу вертикально:

c a d a e a d a
f b   b   b   b

Сразу бросается в глаза симметрия :)

Экспериментально такое сопоставление было составлено вплоть до 2^32, паттерн сохраняется (не доказано). Есть и другая интересная статистика, но об этом не буду. Теперь вернемся к первой группе, что делать с ней? Давайте еще раз посмотрим на нее.

0 1 2 3 4 5 6 7
---------------
? ? ? ? ? ? ? ?

Начнем с конца.

7 - простое, отсюда можно сопоставить с символом - a

6 - 2^1 * 3, отсюда можно сопоставить с символом - d

5 - простое, отсюда можно сопоставить с символом - a

4 - 2^1 * 2^1, но у нас нет символа для такого сопоставления, справедливости ради я лично сопоставил с отдельным символом, как 2^2, нет больше другого числа такого.

3 - простое, отсюда можно сопоставить с символом - a

2 - 2^1, тут фактически тоже самое, что и в случае с 4, я лично также сопоставил отдельный символ.

1 - простое ли оно? составное ли оно? - непонятно, также сопоставил с отдельным символом.

0 - тут я даже не знаю что делать, лично я сопоставил это с отдельным символом.

Как видим, первая группа получилась своеобразная (уникальная), не сопоставляющаяся с общим паттерном.

Давайте наглядно посмотрим.

0 1 2 3 4 5 6 7
---------------
? ? ? a ? a d a

? - обозначили пока не сопоставленный символ.

Давайте попробуем применить наш паттерн к этой группе и посмотрим, что получится.

0 1 2 3 4 5 6 7
? ? ? a ? a d a
---------------
c a d a e a d a
f b   b   b   b

Начнем с 4, на месте шаблона стоит символ "e" и однозначный, а он у нас определен как 2^2 * n. То есть 4 = 2^2 * 1, Тогда 1 по нашему определению это составное число (1 * 1 = 1). Хорошо пусть так и будет, пойдем дальше.

2 - на месте шаблона однозначно стоит символ "d", он определен как 2^1 * n. То есть 2 = 2^1 * 1, по аналогии с 4.

1 - на месте шаблона стоит либо символ "a" - степени простых, либо символ "b" - нечетные составные. У нас выше для 4 и 2 получилось, что 1 должна быть составной, тогда можно применить символ "b", а если в действительности (мы же не знаем) 1 это простое число, то можем сопоставить с символом "a". В итоге, оба сопоставляемых тут символа к 1 (единице) - допустимы, что совпадает с нашим общим паттерном.

0 - А вот теперь самое интересное!!! (барабанная дробь)
На месте паттерна у нас два символа - "c" и "f". Еще раз посмотрим на определение этих симвлов.

c - степени двойки. 8, 16, 32 ... 2^k, где k >= 3. Почему 3? Вот тут и загвоздочка о которой ниже будет сказано. А пока этим "символом" будем сопоставлять все числа, которые являются степенями двойки, начиная с 8 = 2^3.

f - четные числа вида 2^k * n, где n это любое число, символ которого равен b, а k >= 3. 120 = 2^3 * 15 = 2^3 * (3 * 5).

Ни под одно не подходит чисто по определению. Но давайте просто посмотрим на тенденцию выше, которую мы определили (допустили такое определение) для чисел 1 2 4.

(для 1 -> 1 * 1 = 1 как составное) (для 2 -> 2^1 * (1 * 1) = 2) (для 4 -> 2^2 * (1 * 1) = 4)

Рассмотрим 0 1 2 3 4 с точки зрения чередования четности. 0 2 4 - "должны" быть четными (0 пока тоже под вопросом четен или нет, допустили, что четен), а 1 и 3 - нечетные.

Наши четные числа 2 и 4 содержат степень двойки в своем определении, 2^1 и 2^2 сопоставили их с одним символом 2^1 * (1 * 1) -> "d" и 2^2 * (1 * 1) -> "e".

Но по шаблону у нас должен быть либо символ "с", либо "f". Тут символ "f" сразу отпадает, так как степень 2^k * n она у нас по определению k >= 3.

Остается последний символ - "с" - степени двойки. Но у нас в определение символа степеней двоек дано k >= 3. Ок, давайте сделаем k >= 0. Тогда у нас 0 будет сопоставлен именно с этим символом. 0 = 2^0 -> "c".

В итоге, как видите жонглируя определениями у меня "появилась необходимость", чтобы я 0 (нуль) сопоставил с символом "с" - который по измененному определению сопоставляет числа степеней двойки.

пс: писанины получилось много, думаю идея ясна.  

Ответить | Правка | Наверх | Cообщить модератору

116. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 13-Окт-25, 18:05 
Ответ на 13.108, freehck (ok), 11:25, 13/10/2025, который запретил анонимам отвечать на свои коментарии.

> тебе знакома поговорка "на вопросы одного дуpaкa и сто мудрецов не ответят"?

А вы сможете ответить на вопрос, "что общего между дураком и гением"? - Дам сразу ответ: "не тот ни другой не имеют единомышленников" :)

Ответить | Правка | Наверх | Cообщить модератору

77. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 12-Окт-25, 19:54 
> У нас есть

Когда поймете по какой причине в биективной позиционной системе счисления нет "нуля", тогда и поймете почему x^0 = 1 - некорректно.

//en.wikipedia.org/wiki/Bijective_numeration

Ответить | Правка | К родителю #72 | Наверх | Cообщить модератору

82. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (61), 12-Окт-25, 21:54 
По вашей же ссылке в Википедии

> every **non-negative** integer
> The integer zero is represented by the empty string.

Ноль есть выходит, пустой строкой обозначается.

И никакой некорректности x^0 = 1 и не следует выходит...

Ответить | Правка | Наверх | Cообщить модератору

87. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 12-Окт-25, 23:53 
> Ноль есть выходит, пустой строкой обозначается.

"empty string" - не есть число!!! А 0 принято считать числом ведь, то есть численным значением. Как предлагаете складывать тип string с integer?

> И никакой некорректности x^0 = 1 и не следует выходит...

Экспоненциальную запись посмотрите и поймете почему 10 (один и ноль - десять говорим) заменили на А, то есть числовой ряд сдвинут на один шаг вперед, и он начинается с 1 (единицы), а не с 0 (нуля) как в обычной позиционной системе счисления (которая не биективна). В чем преимущество биективной системы, думаю объяснять не надо.

Ответить | Правка | Наверх | Cообщить модератору

92. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (61), 13-Окт-25, 01:02 
> empty string - не есть число

Так в том и суть. Bijective numeration, на который вы ссылку скинули, это по сути функция, которая переводит неотрицательные целые числа в строки (последовательности разрядов 1, 2, ..., k).

Любая запись числа есть не число, а строка разрядов.
Запись числа - это представление числа, но не само же число. Мы числам можем самые разные представления придумывать.

> то есть числовой ряд сдвинут на один шаг вперед

Никто не сдвигал числовой ряд. Он как был, так и остался. Это просто способ представления неотрицательных целых чисел, который сопоставляет нулю пустую строку, единице - строку "1", ..., десятке - строку "A" и т.д. Это просто иное представление чисел.

> В чем преимущество биективной системы, думаю объяснять не надо.

А я вот не вижу особых плюсов. С математической точки зрения, как биективное отображение множества неотрицательных целых чисел в множество строк - занятно. Но для практики - что с того?

Ответить | Правка | Наверх | Cообщить модератору

96. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 13-Окт-25, 01:58 
> Так в том и суть. Bijective numeration, на который вы ссылку скинули,
> это по сути функция, которая переводит неотрицательные целые числа в строки
> (последовательности разрядов 1, 2, ..., k).

Ну, а позиционная система счисления (обычная) не такая же функция? Только она представляет числа начиная с 0, а биективная позиционная - нет. Вопрос почему?

> Любая запись числа есть не число, а строка разрядов.
> Запись числа - это представление числа, но не само же число. Мы
> числам можем самые разные представления придумывать.

Все верно, 107 в позиционной системе счисления 0 во втором разряде это что? Допустимо ли 1" "7 такое представление в биективной позиционной системе счисления? - НЕТ! Видим разницу в представлениях?

> Никто не сдвигал числовой ряд. Он как был, так и остался. Это
> просто способ представления неотрицательных целых чисел, который сопоставляет нулю пустую
> строку, единице - строку "1", ..., десятке - строку "A" и
> т.д. Это просто иное представление чисел.

В позиционной десятичной системе счисления нет единичного представления "числа десять", а в биективной есть - A. Давайте посчитаем:

В десятичной позиционной системе счисления используются следующие символы:

0 1 2 3 4 5 6 7 8 9 - всего 10 символов.

Каждый из символов представляет "свое" же число (place-value notation), то есть 0 - представление нуля, 1 - представление единицы, 2 - двойки и т.д.

В биективной позиционной системе счисления используются следующие символы:

1 2 3 4 5 6 7 8 9 А - так же всего 10 символов.  

Каждый из символов представляет "свое" же число (place-value notation), но тут в отличии от обычной десятичной системы - нет нуля. 1 - представляет единицу, а не 0, 2 - двойку, 3 - тройку, .... А - десятку. В обычной десятичной системе счисления мы десятку представляем двумя символами 10 (1 в десятичном разряде и 0 в единичном)

Представление нуля тут вообще нет, а пустая строка, за которую обозначают ноль в единичном разряде, вовсе не входит в список допустимых символов биективной системы счисления, если бы входил бы, тогда у нас было бы не 10, а 11 символов представления и это уже не десятичная биективная система счисления, а "11-ричная с нулем".

Отсюда и сдвиг.


> А я вот не вижу особых плюсов. С математической точки зрения, как
> биективное отображение множества неотрицательных целых чисел в множество строк - занятно.
> Но для практики - что с того?

Вы понимаете, что такое биекция и мощность представления? Без этого понимания плюсов не увидеть.

пс: 000001726 это представление какого числа? 1726 так ведь? А почему так? у меня же там вон сколько разрядов аж 9, а это представление всего лишь представление маленького числа 1726, как так?

Ответить | Правка | Наверх | Cообщить модератору

103. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (61), 13-Окт-25, 09:40 
> Ну, а позиционная система счисления (обычная) не такая же функция? Только она представляет числа начиная с 0, а биективная позиционная - нет. Вопрос почему?

Да такая же, но нет, биективная тоже начиная с нуля. Она ему представляет пустую строку

> Допустимо ли 1" "7 такое представление в биективной позиционной системе счисления? - НЕТ! Видим разницу в представлениях?

Ну для 107 представление будет A7. Но как относится к представлению числа 0? Представление нуля - пустая строка , это не символ, а строка, да. Какое вообще ноль имеет отношение к 107 в этой системе счисления?

> Представление нуля тут вообще нет, а пустая строка, за которую обозначают ноль в единичном разряде, вовсе не входит в список допустимых символов биективной системы счисления

Пустая строка - не символ, согласен. Но это представление числа 0. И то, что она не символ - не означает, что ее нет.

Что такое вообще строка? Строка - это последовательность символов некого алфавита (в нашем случае 1,2,..., A) конечной длины. Пустая строка - последовательность нулевой длины. Всё прекрасно с ней.

> Вы понимаете, что такое биекция и мощность представления? Без этого понимания плюсов не увидеть

Ну это прикольно, да, иметь однозначное соответствие, но вот ваш пример с 000001726 на практике проблем не вызывает - просто вводим отношение эквивалентности между строками, что строка a эквивалентна строке 0..0a (любое количество нулей слева), и оперируем с классами эквивалентности этой

Ответить | Правка | Наверх | Cообщить модератору

118. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 13-Окт-25, 18:34 
> биективная тоже начиная с нуля. Она ему представляет пустую строку

Нет не начинается, если начиналось бы то символ "пустой строки" был бы в списке допустим символов при представлении любого числа. Сам символ "0" в обычной позиционной системе счисления ведь используется в представлении других чисел, не только нуля ведь. А в биективной - "пустой строкой" определено лишь число 0 (нуль).

> Какое вообще ноль имеет отношение к 107 в этой системе счисления?

как какое - прямое. Запишем число 107 в экспоненциальной форме.

107 = 1*10^2 + 0*10^1 + 7*10^0 = 107

Символ "0" в десятичном разряде (place) мы же представили как значение (value) числа 0. Отсюда и place-value numeric system. Отсюда можете сказать, что есть необходимость в 10^0 чтобы было равно 1, ибо если бы равнялось бы 0, то при умножении на 7 давало бы - 0, а нам же нужно 7. Что сделает формулу не корректной. Вопрос в корректности формулы для позиционной системы счисления я ставлю под сомнение. Вот и тут нулевая степень говорит свое и от ее определения (принятия на веру) зависит корректность формулы в целом. Вопрос, почему в биективной нет нуля?

> Пустая строка - не символ, согласен. Но это представление числа 0. И то, что она не символ - не означает, что ее нет.

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

> Всё прекрасно с ней.

Ну представьте простой такой механизм счетчик (насаженный на стержень декагоны десяти угольник с нанесенным на них символами(цифрами)). Для 10 позиционной системы счисления 0 будет представлен на этом счетчике вот так 00000000 (счетчик состоит из 8 разрядов и все положения декагонов показывают символ (цифру) "0"), А теперь изобразите мне счетчик для биективной  покажите мне представление числа 0.

У вас ведь на декагонах будут символы 1 2 3 4 5 6 7 8 9 A. Можно ли для биективной системы счисления сразу в дефолтовое положение расположить эти декагоны? Получится ведь так 11111111. Это разве число 1? - нет. число 1 - это один декагон нанизанный на стержень и не более и установленный в положение с символом "1". Как мне на таком счетчике 0 показать? Интуитивно - пустой стержень без декагонов, да могу согласиться, иначе никак. Но такой ведь счетчик с нулем на декагонах возможно сделать, в чем проблема?

> что строка a эквивалентна строке 0..0a (любое количество нулей слева)

А где биекция? она же нарушается, 0000 и 0 это два разных представления, тут проблема есть в представлении таких чисел в технике, то есть регистры переменной длины. У нас есть регистры переменной длины? :)

Ответить | Правка | Наверх | Cообщить модератору

69. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 12-Окт-25, 16:31 
Ответ на 6.65, freehck (ok), 14:17, 12/10/2025, который запретил отвечать анонимам :)

> А нет никакой веры.

Еще хуже - подведение под результат (самообман), я, иначе, необоснованное даже принятие на веру, что-либо принять не могу.

> При c=0 -- это уже случай особый.

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

> Собственно, чтобы не принимать ничего на веру, а именно что _знать_ почему оно так, и когда именно оно так -- для этого и нужно высшее образование.

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

> Так-то в математике есть куда более смешные вещи.

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

> Вот ты например знаешь, что сумма всех натуральных чисел равна -1/12 (да-да, именно минус)?

Я вот могу знать только частичную сумму натурального ряда ибо это от природы, а про то, что вы говорите это определенная (выдуманная) Рамануджаном сумма.

//en.wikipedia.org/wiki/Ramanujan_summation

Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

71. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (61), 12-Окт-25, 19:07 
> Математикой надо описывать природу, а не "больное" воображение.

Математика занимается не описанием природы, а изучением математических систем. Задаются аксиомы и логика, и в ней мы работаем.

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

Ответить | Правка | Наверх | Cообщить модератору

74. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 12-Окт-25, 19:18 
> Математика занимается не описанием природы, а изучением математических систем. Задаются
> аксиомы и логика, и в ней мы работаем.

Математика занимается математикой. :)

> Описанием природы, в т.ч. с использованием математики - это уже к другим
> наукам: физике, химии, пр. А математика природой не занимается

Инструмент (аппарат) "математика" в физике, химии и других науках используется?

Ответить | Правка | Наверх | Cообщить модератору

95. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (61), 13-Окт-25, 01:33 
> Математика занимается математикой. :)

Да, по большому счету именно так

> Инструмент (аппарат) "математика" в физике, химии и других науках используется?

Да. Самое главное, что использоваться ими он может по-разному, как им удобно. Есть математическое понятие пространства, допустим. Его можно использовать напрямую и наглядно, рассуждая о 3-мерном пространстве в физике, например. Есть у нас материальная точка N, у нее координаты в пространстве (x,y,z).

А можно, в той же физике, ввести понятие фазового пространства - это абстрактное пространство, где координаты - это положения в пространстве и скорости. Для нашей N фазовое пространство, допустим, будет с координатами (x,y,z, v_x, v_y, v_z). Каждая точка фазового пространства - полное описание состояния системы. Глядя на траектории в этом фазовом пространстве, можно об эволюции этой системы во времени рассуждать.

Но с т.з. математики что то пространство, что это. Ну размерность разная в данном примере, а так оба пространства. Содержательный смысл - он внематематичен в данном вопросе.

Ответить | Правка | Наверх | Cообщить модератору

98. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 13-Окт-25, 03:20 
> Да, по большому счету именно так

Как так, вы же физику, химию и т.д. естественные науки описываем языком математики.

> Содержательный смысл - он внематематичен в данном вопросе.

Ну как можно физикой описать физику? "Физические формулы" это ведь математический термин. Равенство, неравенство и т.д. Физика - это наблюдения, измерения, эксперименты, явления, процессы природы. Описанием (объяснением) же всего этого занимается математика.

Ответить | Правка | Наверх | Cообщить модератору

104. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (61), 13-Окт-25, 09:44 
> Физические формулы" это ведь математический термин.

Нет. Для математики физики нет

>  вы же физику, химию и т.д. естественные науки описываем языком математики.

А это физиков надо спросить, почему математика им полезна.

В целом, если пытаться философствовать, я считаю, что математика - это наука про методы нашего человеческого мышления, про объекты внутри головы нашей. Она полезна в физике, имеет какую-то силу в описании реальности? Да, но не потому, что изучает реальность, а потому что наше мышление - в этой самой реальности существует и вот так выходит, что законы непротиворечивого мышления немного отражают реальность и позволяют ее понять

Ответить | Правка | Наверх | Cообщить модератору

120. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 13-Окт-25, 18:43 
> Она полезна в физике, имеет какую-то силу в описании реальности? Да, но не потому, что изучает реальность

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

Природа дает нам возможность использовать камень в качестве молота, она же позволяет создать сам молот. Отсюда - молот мы не изобрели, он есть в природе по определению. Если бы в природе запрещено было бы взаимодействие любых двух предметов, то ни камень в качестве молота и ни молот сам бы не был бы, так сказать, открытым (инвентед).

Ответить | Правка | Наверх | Cообщить модератору

73. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (61), 12-Окт-25, 19:14 
> какое либо понятие из математики вызывает смех, значит оно не имеет никакого отношения к природе

Математические понятия в целом в природе не существуют. Ни чисел, ни окружностей идеальных, ничего этого в природе нет. И прямого отношения к природе они и не должны иметь. Математика лишь инструменты даёт, идеальные модели, которые бывают применимы для других наук. Некоторые с очевидной наглядностью (натуральные числа), некоторые - с меньшей (те же комплексные числа).

Когда-то люди и число ноль не признавали, что мол за число такое, ничего же нет, какое ноль число. А для математики - объект как объект

Ответить | Правка | К родителю #69 | Наверх | Cообщить модератору

75. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 12-Окт-25, 19:30 
> Математические понятия в целом в природе не существуют. Ни чисел, ни окружностей
> идеальных, ничего этого в природе нет. И прямого отношения к природе
> они и не должны иметь.

Когда говорят что чисел в природе нет, мне всегда смешно, почему? Да потому-что вы даже не знаете (человечество по сей день не знает), что есть ЧИСЛО!!!!!!!!!!!!!! - бесконечное число восклицательных знаков.

Вся природа подчинена "числовым законам". В самой природе, ЧИСЛА как часть природы, быть не должно по определению ПОЛНОТЫ природы (системы), отсюда ЧИСЛО есть нечто внешнее по отношению к самой природе, которая подчинена (построена, описана) "числовым законам".

> Математика лишь инструменты даёт, идеальные модели,
> которые бывают применимы для других наук. Некоторые с очевидной наглядностью (натуральные
> числа), некоторые - с меньшей (те же комплексные числа).

А с чего вы взяли, что природа не идеальная система? Пример, хотя бы один.

> Когда-то люди и число ноль не признавали, что мол за число такое,
> ничего же нет, какое ноль число.

Потому-что не знали что есть ЧИСЛО. Ноль - порядковое ЧИСЛО?

> А для математики - объект как объект

Для самого молотка и гвоздь и палец - два одинаковых объекта, по которому можно "лупить". Для природы и человека - разные. Говорить тут, "А для математики" - не корректно!!!

Ответить | Правка | Наверх | Cообщить модератору

81. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (61), 12-Окт-25, 21:50 
> В самой природе, ЧИСЛА как часть природы

Где в природе число 1 есть? Не вижу нигде. Есть 1 яблоко на столе, а вот числа один в природе - нету. Я его руками пощупать не могу.

> А с чего вы взяли, что природа не идеальная система?

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

Ну и сам факт развития физики, того что, допустим, физику Ньютона на высоких скоростях уточнила СТО Эйнштейна показывает это. Каждая следующая теория - более приближенная к реальности модель, но всё ещё модель. Полагать, что мы нашли окончательные законы мироздания - слишком горделиво

> Говорить тут, "А для математики" - не корректно

Как раз вполне корректно. Математика есть математика, а не физика, философия или ещё что-либо

Ответить | Правка | Наверх | Cообщить модератору

89. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 13-Окт-25, 00:26 
> Где в природе число 1 есть? Не вижу нигде. Есть 1 яблоко на столе, а вот числа один в природе - нету. Я его руками пощупать не могу.

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

Та самая 1 (единица) единственна и она вне природы, а сама природа состоит из множества составленных из этой "единицы". Аналогия со всевышним. Нам не дано постигнуть эту единицу.

> потому что все наши измерения природных величин обременены погрешностями.

Не погрешностями, а средствами (возможностями). Тут главное правильно дать определение понятию "измерения", а то получится как в мультике, где измеряли удава в слонах, мартышках и попугаях. Возня с гравитационными волнами ровно такая же проблема. Или измерение скорости света :) Условно, мы "А" измеряем с помощью "Б", а "Б" с помощью чего должны измерять? Где та самая минимальная "единица", даже если она есть мы его не постигнем (не измерим), а только логически будем догадываться, что она существует и т.д.

> Полагать, что мы нашли окончательные законы мироздания - слишком горделиво

В том то и дело, что главное тут надо понять уперлись ли мы в "край природы" (аналогия с плоской землей :)) или она настолько бесконечна, что нам ее постигать и постигать?

> Математика есть математика, а не физика, философия или ещё что-либо

Ежа и ужа математически складывать можно, допустимо ли это в природе (физике) - вопрос. Отсюда, зарождение математики провоцировала природа, а не больное воображение. Сама по себе математика не существует. Математическое понятие количественного числа не могло родиться без наличия "количества" (вещей, элементов). Отсюда и запоздалое (позднее) зарождение понятия нуля, как "нет количества". А философия как наука она выше математики, иногда ее называют мета-математикой. Логика - часть математики или все же философии?

Ответить | Правка | Наверх | Cообщить модератору

93. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 13-Окт-25, 01:10 
> Математика есть математика

в дополнение

//ru.wikipedia.org/wiki/Метаматематика

Метатеория, как иерархия теорий по В.Ф. Турчину
Источник: //vikent.ru/enc/3725/

Ответить | Правка | К родителю #81 | Наверх | Cообщить модератору

84. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (84), 12-Окт-25, 23:07 
> Матанализ-то как раз многие понимают, те же инженеры. Вот теорию множеств да,
> там всё похитрее

Ну и какой процент инженеров на этом глобусе? Да и не всем инженерам оно на самом деле по жизни надо. А в _той_ записи они точно не будут этим оперировать. Нафиг им надо всякую эзотерику?

Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

90. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 13-Окт-25, 00:28 
> Нафиг им надо всякую эзотерику?

Ответ на этот вопрос ровно такой же как и на вопрос - "Зачем знающему русский язык - китайский?"

Ответить | Правка | Наверх | Cообщить модератору

101. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (-), 13-Окт-25, 06:24 
> Ответ на этот вопрос ровно такой же как и на вопрос -
> "Зачем знающему русский язык - китайский?"

Ну в общем то таких людей и есть - очень немнго. Ибо сильно разные ипостаси, а применение специфичное, ограниченное, и если вдруг конъюнктура изменится - это знание вообще будет почти некуда приткнуть. Получается актив сложный в освоении и довольно рисковый при этом.

Но сравнение по части языка просто топчик.

Ответить | Правка | Наверх | Cообщить модератору

121. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 13-Окт-25, 18:54 
> Но сравнение по части языка просто топчик.

Ну так это одно и тоже, натуральный язык это такая же формальная система. Ну представьте "Войну и мир", изначально написанную на китайском языке, только потому-что носителей этого языка половина земного шара и это произведение прочтет как минимум половина ее обитателей. Ради этого (популярности, массовости) Лев Николаевич выучил китайский :)

Ответить | Правка | Наверх | Cообщить модератору

107. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (61), 13-Окт-25, 11:15 
> Ну и какой процент инженеров на этом глобусе?

Ну интуитивные понятия об этом у инженеров должны оставаться, иначе что это за инженеры. Речь, конечно, про тех инженеров, у кого много физики в их домене - кто строят механизмы какие-нибудь или что-нибудь такое. Software инженеры-то да, им производные не особо важны, им дискретная математика более значима

> А в _той_ записи они точно не будут этим оперировать

Да не более она эзотерична, чем Си. Си-подобный синтаксис просто всем нам суперпривычен, вот мы его и воспринимаем как должное.

Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

23. "Доступен язык программирования OCaml 5.4.0"  +1 +/
Сообщение от cheburnator9000 (ok), 11-Окт-25, 07:50 
Теперь понятно с какой дичи срисовывали раст.
Ответить | Правка | Наверх | Cообщить модератору

29. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (28), 11-Окт-25, 13:03 
Окамлу 100 лет в обед, вы удивитесь что только с него срисовывали. А на деле - чего тут срисовывать? Окамл просто предоставляет строгую семантику для математических функций. То есть зная математику окамл учится за вечер.
Ответить | Правка | Наверх | Cообщить модератору

31. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (9), 11-Окт-25, 13:11 
> То есть зная математику окамл учится за вечер.

жонглируя предметами, вы не познаете силу притяжения.

Ответить | Правка | Наверх | Cообщить модератору

32. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от freehck (ok), 11-Окт-25, 13:23 
> То есть зная математику окамл учится за вечер.

Вот кстати поддерживаю на 100%. Берёшь RealWorldOcaml, за день читаешь первые несколько глав -- и базовый OCaml уже освоен.
А дальше будет уже исключительно изучение усиливающих разработчика абстракций.

Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

56. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (-), 12-Окт-25, 05:01 
> А дальше будет уже исключительно изучение усиливающих разработчика абстракций.

Только вот смысла в этом - если заниматься хотелось софтостроем а не математикой - примерно ноль. На этом ocaml по сути нет софта. И даже всякие прототиписты-криптографы и проч - свои макеты на питоне обычно корябают. Потом если зашло - переписывают на что поприличнее. Ocaml в этот список, конечно, не входит.

Так что чисто практически - вы предложили у..ть эн времени чтобы пострадать фигней, без видимого миру результата с этого всего. С таким же успехом можно в какую-нибудь гамезу поиграться - настолько же полезно окружающим в итоге.

Ответить | Правка | Наверх | Cообщить модератору

58. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от freehck (ok), 12-Окт-25, 10:54 
>> А дальше будет уже исключительно изучение усиливающих разработчика абстракций.
> Только вот смысла в этом - если заниматься хотелось софтостроем а не математикой - примерно ноль.

Да что ты знаешь про софтострой? Я несколько лет жизни проработал коммерческим программистом на OCaml. Всё там в порядке с софтостроем.

Ответить | Правка | Наверх | Cообщить модератору

66. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (-), 12-Окт-25, 14:44 
> Да что ты знаешь про софтострой? Я несколько лет жизни проработал коммерческим
> программистом на OCaml.

Побольше твоего, поработав в нескольких жииррных мегакорпах из верхушки фортуны 500 с десяток лет. Что, померялся? Не, эзотериков они вообще не нанимают. Ибо если ЭТОТ уволится - где ему замену потом брать?!

> Всё там в порядке с софтостроем.

Оно и видно. Например по элементарному списку вакансий. При том это проверябельно: берете сервис вакансий по вкусу. Смотрите какие скиллы требуются. И сколько вакансий по тому или иному яп. Дальнейшие выводы каждый может сделать для себя сам, без посторонних сказок.

Ответить | Правка | Наверх | Cообщить модератору

67. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от freehck (ok), 12-Окт-25, 14:50 
> Оно и видно. Например по элементарному списку вакансий. При том это проверябельно: берете сервис вакансий по вкусу. Смотрите какие скиллы требуются. И сколько вакансий по тому или иному яп. Дальнейшие выводы каждый может сделать для себя сам, без посторонних сказок.

Посмотри список вакансий, сколько нужно автослесарей для всяких станций техобслуживания. Как много вакансий!
А потом посмотри, сколько нужно авиационных инженеров, специализирующихся на ГПВРД. Раз-два и обчёлся...

> эзотериков они вообще не нанимают. Ибо если ЭТОТ уволится - где ему замену потом брать?!

Вот ушёл инженер -- где ему замену потом брать?! Товар-то штучный!

Ну а дальнейшие выводы пусть каждый делает для себя сам. ))))

Ответить | Правка | Наверх | Cообщить модератору

85. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (84), 12-Окт-25, 23:17 
> А потом посмотри, сколько нужно авиационных инженеров, специализирующихся на ГПВРД.

И это как бы может запросто стать проблемой. Прикинь, если например ты работал машинистом на РЖД - и тебе не понравилось как они относятся к машинистам - теперь попробуй вообще работу по специальности сменить. И даже в странах без почти-монополий на это - выбор будет из нескольких фирм топ.

В этом смысле водителем такси каким - быть значительно прикольнее на самом деле.

>> эзотериков они вообще не нанимают. Ибо если ЭТОТ уволится - где ему замену потом брать?!
> Вот ушёл инженер -- где ему замену потом брать?! Товар-то штучный!

Корпы стараются избегать таких ситуаций по максимуму. А софтварные это еще и могут. Ибо все тюринг-полные ЯП - эквивалентны. Поэтому они могут просто послать экзотов на подлете в пень и сделать это на другом ЯП. Не существует задач которые можно решить на OCaml и нелзя - на другом ЯП. Так что пример не эквивалентный.

> Ну а дальнейшие выводы пусть каждый делает для себя сам. ))))

Проблема в том что если с инженерами еще можно поспорить (и то в половине случаев корп захочет тоже взять более попсовую технологию дабы не иметь головняка с HR) - то в софте все тюринг-полные ЯП теоретически эквивалентны. И на этой почве сильно проще послать эстетов с их предпочтениями на мороз, заменив кем-то другим. На результат это не повлияет, в отличие от. По крайней мере в первом приближении. Нюансы конечно есть но не столько.

Ответить | Правка | Наверх | Cообщить модератору

40. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (37), 11-Окт-25, 15:06 
100 лет в обед это вообще ML-ям, а конкретно OCaml появился в 1996.
Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

39. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от blevakagmail.comemail (?), 11-Окт-25, 15:04 
Ocaml for.net aka F#
Rust via ocaml
Fabel fsharp компилируется в Раст. Кстати ребята делают на f# fidelity fw компилируется в mlir натив. У оригинала также классный компилятор
Ответить | Правка | Наверх | Cообщить модератору

42. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (-), 11-Окт-25, 15:15 
>let ( * ) (x,~dx) (y, ~dx:dy) =
>x*.y, ~dx:(x *. dy +. y *. dx )

Найдём производную правой части.

Ответить | Правка | Наверх | Cообщить модератору

46. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (46), 11-Окт-25, 17:12 
....и эти люди ещё ругают Перл!
Ответить | Правка | Наверх | Cообщить модератору

47. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (47), 11-Окт-25, 18:01 
Я могу иллюстрировать свои научные труды кодом на Си (ранее Фортране) или Бейсике в уверенности, что большинство коллег - инженеров и физиков - легко поймет предлагаемые мной алгоритмы. Но как можно что-то писать на этом?
Ответить | Правка | Наверх | Cообщить модератору

50. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (37), 11-Окт-25, 21:37 
INRIA как-то пишет.
Ответить | Правка | Наверх | Cообщить модератору

59. "Доступен язык программирования OCaml 5.4.0"  –1 +/
Сообщение от Аноним (59), 12-Окт-25, 11:32 
> INRIA как-то пишет.

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

В любом случае процент софта на этом - крайне близок к 0%. Какая-то INRIA точно не основной производитель софта на планете.

Ответить | Правка | Наверх | Cообщить модератору

78. "Доступен язык программирования OCaml 5.4.0"  +1 +/
Сообщение от Аноним (37), 12-Окт-25, 21:16 
Так они и не производители массово-потребителького софта, а проблемноориентированного.
Ответить | Правка | Наверх | Cообщить модератору

113. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (112), 13-Окт-25, 12:36 
В одном институте (НИИ) люди одно и то же переписывали 3 раза на разных ЯПах, просто потому что интересно было. Поэтому это не показатель.
Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

119. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (47), 13-Окт-25, 18:38 
> INRIA как-то пишет.

Не считаете, что написание одного Eigen (все остальные проекты ничтожны) 3 тысячами человек  за 58 лет - маловато для вклада в науку?

Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

51. "Доступен язык программирования OCaml 5.4.0"  +1 +/
Сообщение от Аноним (-), 11-Окт-25, 22:11 
> большинство коллег - инженеров и физиков - легко поймет предлагаемые мной алгоритмы.

OCaml не для инженеров и физиков, он для программистов. Ты бы ещё посетовал на то, что программисты не понимают уравнения Шрёдингера или сопромата.

Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

60. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (59), 12-Окт-25, 11:35 
>> большинство коллег - инженеров и физиков - легко поймет предлагаемые мной алгоритмы.
> OCaml не для инженеров и физиков, он для программистов.

Программистам в 99% случаев нахрен не упало вычислять производные, а тут прям пример с этим. И софта на этом собственно - около ноля. Пишут на этом в основном какие-то специфичные академы, страшно далекие от людей, продов и проч. И получается - то что получается.

Ответить | Правка | Наверх | Cообщить модератору

68. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от freehck (ok), 12-Окт-25, 15:10 
> Пишут на этом в основном какие-то специфичные академы, страшно далекие от людей, продов и проч.

Да как раз нет. На этом вполне себе пишут промышленный софт, требующий высокой надёжности. За примерами далеко ходить не надо: разработка серверного ПО для бирж (Jane Street), разработка DLP-систем (Rostelecom Solar)... Словом, не так уж это всё далеко от людей и продов: вы с подобным ПО вполне себе взаимодействуете каждый день, просто не в курсе.

Ответить | Правка | Наверх | Cообщить модератору

83. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Минона (ok), 12-Окт-25, 22:57 
Да откуда им быть в курсе, они заняты перелистыванием фортун500,
Ответить | Правка | Наверх | Cообщить модератору

114. "Доступен язык программирования OCaml 5.4.0"  +/
Сообщение от Аноним (112), 13-Окт-25, 12:41 
Количество вакансий на Ocaml только расстраивает.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру