LINUX.ORG.RU

блин, ну какого фига нельзя было взять синтаксис из groovy?

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

В системе типов .NET

иными словами, замыкания в C# убоги по причине специфики системы типов .Net

о чём, собственно и речь

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

В системе типов .NET нет понятия «общий тип, у которого есть метод 'operator+'».

Причем здесь .NET? Речь шла о языке c#, в котором действительно такой штуки нет. Но зато есть в f# при добавлении ключевого слова inline, хотя тоже .NET. Конкретный язык C# и платформа .NET - это не одно и тоже.

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

> Доступ к локальным переменным есть? Да. Значит, это замыкание.

Ммм. Ну, ок, в принципе, согласен на половину. Т.е. есть замыкание полупеременных по значению. )))

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

Причем здесь .NET? Речь шла о языке c#, в котором действительно такой штуки нет. Но зато есть в f#

даже так

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

Ага. Вот пример:

    
val inline incValue: 'a -> Var<'a> -> Dynamics<unit> when 'a: (static member (+): 'a * 'a -> 'a)
    
val inline decValue: 'a -> Var<'a> -> Dynamics<unit> when 'a: (static member (-): 'a * 'a -> 'a)
dave ★★★★★
()
Ответ на: комментарий от LamerOk

> Ну, ок, в принципе, согласен на половину. Т.е. есть замыкание полупеременных по значению. )))

Такое впечатление, что ты на Яве не писал. Единственное неудобство с этим final - то, что нельзя менять значения не-объектных типов.

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

Практически, да. Я очень давно тыркал её «на посмотреть», да смотрел как сревлеты работают.

то, что нельзя менять значения не-объектных типов.


А у объектных - нельзя менять значение объекта, на который ссылаются. Конечно, захват final ссылки на какой-нибудь ArrayList решает почти все проблемы.. Но чё-то это как-то очень слабо похоже на человеческие замыкания. )))

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

> В системе типов .NET

Какая гадость --- эта ваша система типов .NET Почему нельзя было сделать как в нормальных языках?

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

> А у объектных - нельзя менять значение объекта, на который ссылаются.

зато можно менять сам объект по ссылке - обычно этого хватает.

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

В перле как раз простой и понятный синтаксис. А это херня какая-то.

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

Какая гадость --- эта ваша система типов .NET Почему нельзя было сделать как в нормальных языках?

Как в каких нормальных языках, например? :)

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

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

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

в мейнстриме это выглядело бы забавно

Coq не Тьюринг-полный, потому в мейнстриме как таковом не окажется никогда

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

тогда понимаю, почему тебе нравится хаскель :)

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

Их виртуальные машины - нет


А vsl™ писал, что jvm - гогно

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

>Виртуальные машины по определению убоги. Любые.

Убоги люди. Хвала Аллаху - не все. Но в том числе и те, кто применяет инструмент не по назначению.

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

Юноша, ты идиот. Убогий. По определению. Ты в курсе, что внутри gcc тоже «виртуальная машина»?

anonymous
()
Ответ на: комментарий от yyk

b96 тоже ещё не понимает сей фигни...

yyk ★★★★★
()

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

а как вам замыкания моего руби?)

lambda {|x,y| print x+y }

или же даже так:

-> (x,y) { puts x+y }

ciss
()
Ответ на: комментарий от tailgunner

Взаимоисключающие параграфы детектед.

уточнение

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