The OpenNET Project / Index page

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



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

Оглавление

Представлен новый язык программирования Leaf, реализованный ..., opennews (??), 11-Ноя-13, (0) [смотреть все] +1

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


29. "Представлен новый язык программирования Leaf, реализованный ..."  +1 +/
Сообщение от ананим (?), 11-Ноя-13, 16:59 
У нас не приживётся. Программеров дудут лифчиками называть.
Ответить | Правка | Наверх | Cообщить модератору

38. "Представлен новый язык программирования Leaf, реализованный ..."  +/
Сообщение от pavlinux (ok), 11-Ноя-13, 18:21 
var a : integer = 10/5
var b : integer = 7.5/2.5
var c : float = 1/2
var d = 1e3


var create_adder = ( x : integer ) -> ( f : ( : integer ) -> ( :integer ) ) {
    return (y :integer) -> ( :integer ) {
        return x + y
    }
}

var add5 = create_adder(5)
//prints 7
trace( add5(2) )
---

Мне одному Паскаль мерещится?  

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

39. "Представлен новый язык программирования Leaf, реализованный ..."  +/
Сообщение от pavel_simple (ok), 11-Ноя-13, 18:24 
>[оверквотинг удален]
> ( : integer ) -> ( :integer ) ) {
>     return (y :integer) -> ( :integer ) {
>         return x + y
>     }
> }
> var add5 = create_adder(5)
> //prints 7
> trace( add5(2) )
> ---
> Мне одному Паскаль мерещится?

ты ещё go не видел?

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

40. "Представлен новый язык программирования Leaf,..."  +3 +/
Сообщение от arisu (ok), 11-Ноя-13, 18:28 
> Мне одному Паскаль мерещится?

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

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

48. "Представлен новый язык программирования Leaf, реализованный ..."  –1 +/
Сообщение от VKraft (?), 11-Ноя-13, 22:42 
тут и хаскель и скала и эф-шарп с паскалем
Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

54. "Представлен новый язык программирования Leaf, реализованный ..."  –1 +/
Сообщение от Vkni (ok), 12-Ноя-13, 06:27 
Да, исключительно органично сочетаются недостатки этих языков: птичий язык Хаскеля и отсутствие вывода типов паскаля.
Ответить | Правка | Наверх | Cообщить модератору

60. "Представлен новый язык программирования Leaf,..."  –1 +/
Сообщение от arisu (ok), 12-Ноя-13, 13:53 
> отсутствие вывода типов паскаля.

э… у паскаля вывод типов? ты перегрелся, да?

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

72. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от Vkni (ok), 12-Ноя-13, 18:55 
Арису, включаем ЦНС и читаем мой коммент ещё раз. Если не понятно, скажи, я переформулирую.
Ответить | Правка | Наверх | Cообщить модератору

74. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от arisu (ok), 12-Ноя-13, 19:35 
фраза «отсутствие вывода типов паскаля» допускает двоякое толкование. можно понять и как «в паскале есть вывод типов, а тут нет». я её вполне серьёзно так и понял.
Ответить | Правка | Наверх | Cообщить модератору

76. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от Vkni (ok), 12-Ноя-13, 19:52 
Ну, вот если бы ты не думал, что кругом одни идиоты, ты бы понял правильно.
Ответить | Правка | Наверх | Cообщить модератору

55. "Представлен новый язык программирования Leaf, реализованный ..."  +/
Сообщение от Vkni (ok), 12-Ноя-13, 06:29 
> var create_adder = ( x : integer ) -> ( f :
> ( : integer ) -> ( :integer ) ) {
>     return (y :integer) -> ( :integer ) {
>         return x + y
>     }
> }

Сравним с

let adder x = fun y -> x + y;;

Или

let adder x = (+) x;;

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

61. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от arisu (ok), 12-Ноя-13, 13:58 
> Сравним с

не тупи: в твоём примере нет аннотации типов, поэтому сравнение некорректное. судя по намерениям автора, аннотации типов — strictly optional.

ну и да: твой код делает вовсе не то же самое, что код из примера. и не надо мне рассказывать, что «там, де, возможны только числа, потому что оператор '+' больше нигде не определён». спасибо. раньше я мог просто указать типы аргументов, а теперь я должен помнить, для каких же типов определён '+'.

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

73. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от Vkni (ok), 12-Ноя-13, 18:58 
>> Сравним с
> не тупи: в твоём примере нет аннотации типов, поэтому сравнение некорректное. судя
> по намерениям автора, аннотации типов — strictly optional.

Объясни мне, на кой ляд она нужна?

> ну и да: твой код делает вовсе не то же самое, что
> код из примера.

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

> и не надо мне рассказывать, что «там, де,
> возможны только числа, потому что оператор '+' больше нигде не определён».

Это именно так, см. выше.

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

Можешь вставить int в Caml'евский код по вкусу. Но какой смысл в этом?

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

75. "Представлен новый язык программирования Leaf,..."  –1 +/
Сообщение от arisu (ok), 12-Ноя-13, 19:40 
> Объясни мне, на кой ляд она нужна?

чтобы туда double не пролез, например.

> Увы, из-за отсутствия перегрузки в OCaml'е он делает ровно то же самое.

то есть, складывать вещественные числа при помощи '+' в ocaml нельзя? O_O

>> и не надо мне рассказывать, что «там, де,
>> возможны только числа, потому что оператор '+' больше нигде не определён».
> Это именно так, см. выше.

я сам окамля не знаю, но раз там нельзя при помощи '+' складывать вещественные числа, то я и рад, что не знаю.

>> спасибо. раньше я мог просто указать типы аргументов, а теперь я
>> должен помнить, для каких же типов определён '+'.
> Можешь вставить int в Caml'евский код по вкусу. Но какой смысл в
> этом?

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

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

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

77. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от Vkni (ok), 12-Ноя-13, 20:09 
> чтобы туда double не пролез, например.

Если есть строгая статическая типизация, то не пролезет. Впрочем, можно, конечно, указать типы аргументов, но вот указывать тип результата - это абсолютно лишнее.

>> Увы, из-за отсутствия перегрузки в OCaml'е он делает ровно то же самое.
> то есть, складывать вещественные числа при помощи '+' в ocaml нельзя? O_O

Да, к сожалению, нельзя. Для сложения вещественных чисел там используется оператор '+.'. На мой взгляд, это серьезнейший недостаток языка. Однако, в F# и в Haskell'е такого недостатка нет.

> я сам окамля не знаю, но раз там нельзя при помощи '+'
> складывать вещественные числа, то я и рад, что не знаю.

Зря, кругозор никогда не вредит.

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

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

> я не углублялся, возможно ли сейчас в сабже просто опустить указание типов
> в приведённом примере, но судя по общему дизайну — будет возможно.

Посмотрим.

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

79. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от arisu (ok), 12-Ноя-13, 20:26 
> но вот указывать тип результата - это абсолютно лишнее.

тут да, не спорю.

> Зря, кругозор никогда не вредит.

нененене, я точно передумал его изучать. меня совершенно не радует перспектива запоминать то, что для сложения вещественных чисел надо писать вот эту вот — '+.' — бредятину. а почему не '.+'? а почему не 'add_reals'? нафиг-нафиг.

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

как уже написал — не спорю, тут компилятор должен бы и сам догадаться.

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

80. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от Vkni (ok), 12-Ноя-13, 21:58 
> надо писать вот эту вот — '+.' — бредятину. а почему не '.+'? а почему не 'add_reals'? нафиг-нафиг.

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

Однако, и к Leaf'овскому if'у применимо ровно такое же возражение. Тоже есть культура ЯП, в которой для условных выражений использовались if и cond. Более того, do, традиционно, используется для циклов.

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

83. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от arisu (ok), 12-Ноя-13, 22:17 
а я и сказал, что это чисто моя вкусовщина. извини, если не очень явно получилось.

do, кстати, не везде для циклов, но это совсем другой разговор.

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

84. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от myhand (ok), 13-Ноя-13, 11:16 
> нененене, я точно передумал его изучать. меня совершенно не радует перспектива запоминать
> то, что для сложения вещественных чисел надо писать вот эту вот
> — '+.' — бредятину. а почему не '.+'? а почему не
> 'add_reals'? нафиг-нафиг.

Вам не нравится именно буковки для обозначения или сама идея не использовать + для сложения чисел с плавающей точкой (которые вещественными может обозвать только школьник)?

Буковки - дело соглашения.  Просто типография с только ascii - уныла, существенно лучшего выбора нету.  Зато Кнут вот использует плюсик в кружочке.  А вот сама идея не использовать обычный плюсик - имеет вполне здравые математические корни: для чисел с плавающей точкой операции "умножить" и "сложить" не сохраняют "обычных" математических свойств (напр., ассоциативность).  Это не поле, каким являются настоящие вещественные числа (или рациональные, к примеру).

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

85. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от arisu (ok), 13-Ноя-13, 13:32 
> которые вещественными может обозвать только школьник

беседа закончена, не начавшись.

Rasch abkochen, dann Vormarsch nach Sokal.

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

86. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от myhand (ok), 13-Ноя-13, 19:05 
>> которые вещественными может обозвать только школьник
> беседа закончена, не начавшись.

Опять что-то не нравится...  Ну пусть вы не школьник, будем считать что оговорились.

Исключая приаттаченый к замечанию эпитет - с сам замечанием согласны?

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

87. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от arisu (ok), 13-Ноя-13, 19:15 
> с сам замечанием согласны?

сложение целых чисел тоже ограничено разрядностью (если я верно помню, у окамля нет прозрачного «выпадения» в bignum'ы), и в этом случае использование '+' для сложения целых математически неверно. пусть уж выбирают там — трусы или крестик.

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

88. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от myhand (ok), 13-Ноя-13, 19:22 
>> с сам замечанием согласны?
> сложение целых чисел тоже ограничено разрядностью (если я верно помню, у окамля
> нет прозрачного «выпадения» в bignum'ы)

А тут все хорошо и без бигнумов.  Покуда результат *всех* операций определен (не произошло переполнения) - с их алгеброй все тип-топ.

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

89. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от arisu (ok), 13-Ноя-13, 19:31 
что-то я не помню у целых чисел математического понятия «переполнение». поэтому '+' для целых явно отличается от такового в математике. тогда какого чёрта? '+' для плавающих тоже отличается — объединяем и не имеем себе мозг лишней ерундой.

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

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

90. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от myhand (ok), 13-Ноя-13, 21:33 
> что-то я не помню у целых чисел математического понятия «переполнение».

Ну математическое или нет - каждый, кто считал на бумашке что-то чуть менее тривиальное чем 2x2 знаком с понятием "кончилась бумашка".  Физических ограничений никто не отменял.

Проблема с float связана не с физическими ограничениями, а с самой моделью.

> поэтому '+' для целых явно отличается от такового в математике

Абсолютно ничем.    Повторяю, физические ограничения тут не интересны.  В одном случае (int) - результат операции неопределен.  В другом (bigint) - все зависнет, программа завершится из-за нехватки памяти и т.п.  В третьем - бумашка кончилась.  И ладненько - возьмем *заранее* бумашку побольше.

> тогда какого
> чёрта? '+' для плавающих тоже отличается — объединяем и не имеем
> себе мозг лишней ерундой.

Я пробовал вам объяснить какого.  Для интов/бигинтов и т.п. - алгебраические свойства операций сохраняются полностью.  Для float - нет.

Бумашка тут не кончается и запасаться ей бесполезно: результат операции может быть определен в конкретном примере для любой пары операндов.  А вот некоторые привычные (для вещественных чисел) алгебраические свойства операций окажутся утраченными.

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

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

91. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от arisu (ok), 13-Ноя-13, 23:02 
всё-таки раз послал в Сокаль — надо было и не возвращать. приходи, когда в математике появится понятие «результат сложения двух определённых целых чисел неопределён». до тех пор — игнор.
Ответить | Правка | К родителю #90 | Наверх | Cообщить модератору

92. "Представлен новый язык программирования Leaf,..."  +/
Сообщение от myhand (ok), 13-Ноя-13, 23:21 
Мда.  Мне жаль потраченного времени.

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

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

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




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

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