Nemerle 1.x Sample Pack
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.10.11 17:29
Оценка:
Наткнулся тут на F# 3.0 Sample Pack. Идея мне понравилась.

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

Оформить это дело можно прямо в вики на гитхабе. А код хранить в сниппетах.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Nemerle 1.x Sample Pack
От: Denom Украина  
Дата: 19.10.11 07:29
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Наткнулся тут на F# 3.0 Sample Pack. Идея мне понравилась.


VD>Может кто-то займется клонированием этого набора примеров на немерде. Думаю это будет очень полезно.


VD>Оформить это дело можно прямо в вики на гитхабе. А код хранить в сниппетах.

Все ли оттуда нужно : office interop, azure, link, parallel computation?
В немерле появились TypeProvider'ы?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[2]: Nemerle 1.x Sample Pack
От: hardcase Пират http://nemerle.org
Дата: 19.10.11 08:57
Оценка:
Здравствуйте, Denom, Вы писали:

D>В немерле появились TypeProvider'ы?


Они там были всегда.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[3]: Nemerle 1.x Sample Pack
От: Denom Украина  
Дата: 19.10.11 10:37
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, Denom, Вы писали:


D>>В немерле появились TypeProvider'ы?


H>Они там были всегда.


А где они? что-то я такого не помню/не встречал.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[2]: Nemerle 1.x Sample Pack
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.10.11 11:38
Оценка:
Здравствуйте, Denom, Вы писали:

VD>>Оформить это дело можно прямо в вики на гитхабе. А код хранить в сниппетах.

D>Все ли оттуда нужно : office interop, azure, link, parallel computation?

Конечно не все. Там есть примеры которые не имеют смысл или не реализуемы без написания кучи макросов (например, единицы изменения). Но из перечисленного только azure, пожалуй не имеет смысла реализовывать.

D>В немерле появились TypeProvider'ы?


Оно и немерле не нужны. TypeProvider — это костыль встроенный в F# который позволяет произвести хоть какую-то генерацию кода во время компиляции. В Nemele поддерживается полноценная манипуляция типами. Так что для примеров TypeProvider-ов можно сделать очень красивые аналоги на макросах. А некоторые уже имеются. Так вместо TypeProvider-а для регулярных выражений можно использовать макрос regex match, который, на мой взгляд, намного удобнее.

Примеры алогичные TypeProvider-ам отлично продемонстрируют тот факт, что в Nemerle значительно более удобный и высокоуровневый API для работы с типами.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Nemerle 1.x Sample Pack
От: hardcase Пират http://nemerle.org
Дата: 19.10.11 11:47
Оценка:
Здравствуйте, Denom, Вы писали:

D>А где они? что-то я такого не помню/не встречал.


Вот они:
<[ decl: public class FooBar { } ]>

/* иЗвиНите зА неРовнЫй поЧерК */
Re[5]: Nemerle 1.x Sample Pack
От: Denom Украина  
Дата: 19.10.11 12:16
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, Denom, Вы писали:


D>>А где они? что-то я такого не помню/не встречал.


H>Вот они:

H>
H><[ decl: public class FooBar { } ]>
H>

H>

Та ладна... А если серьёзно?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[3]: Nemerle 1.x Sample Pack
От: Denom Украина  
Дата: 19.10.11 12:18
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Denom, Вы писали:


VD>>>Оформить это дело можно прямо в вики на гитхабе. А код хранить в сниппетах.

D>>Все ли оттуда нужно : office interop, azure, link, parallel computation?

VD>Конечно не все. Там есть примеры которые не имеют смысл или не реализуемы без написания кучи макросов (например, единицы изменения). Но из перечисленного только azure, пожалуй не имеет смысла реализовывать.


D>>В немерле появились TypeProvider'ы?


VD>Оно и немерле не нужны. TypeProvider — это костыль встроенный в F# который позволяет произвести хоть какую-то генерацию кода во время компиляции. В Nemele поддерживается полноценная манипуляция типами. Так что для примеров TypeProvider-ов можно сделать очень красивые аналоги на макросах. А некоторые уже имеются. Так вместо TypeProvider-а для регулярных выражений можно использовать макрос regex match, который, на мой взгляд, намного удобнее.


VD>Примеры алогичные TypeProvider-ам отлично продемонстрируют тот факт, что в Nemerle значительно более удобный и высокоуровневый API для работы с типами.


Примеры для линк-а наверное уже тоже есть. Мне помнится кто-то писал сниппет баузер... Интересно в каком он состоянии?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[4]: Nemerle 1.x Sample Pack
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.10.11 12:43
Оценка:
Здравствуйте, Denom, Вы писали:

D>Примеры для линк-а наверное уже тоже есть.


Только в составе тестов.

D>Мне помнится кто-то писал сниппет баузер... Интересно в каком он состоянии?


На начальном. Он попробовал и бросил.

Мне кажется примеры в вебе (с результатами) удобнее, так как не надо ничего ставить или чего-то качать. Да и ссылки можно давать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Nemerle 1.x Sample Pack
От: hardcase Пират http://nemerle.org
Дата: 19.10.11 12:59
Оценка:
Здравствуйте, Denom, Вы писали:

D>Та ладна... А если серьёзно?


Макрос уровня сборки, создающий типы на основе некоторых входных данных: метаданные БД, XML файл и т.п. по сути и будет являться TypeProvider-ом.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[7]: Nemerle 1.x Sample Pack
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.10.11 13:06
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Макрос уровня сборки, создающий типы на основе некоторых входных данных: метаданные БД, XML файл и т.п. по сути и будет являться TypeProvider-ом.


Ну, да только синтаксис чуть дргой. Хотя, если делать нечего, то и синтаксис можно повторить.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Nemerle 1.x Sample Pack
От: Ziaw Россия  
Дата: 19.10.11 15:50
Оценка:
Здравствуйте, VladD2, Вы писали:

D>>Мне помнится кто-то писал сниппет баузер... Интересно в каком он состоянии?


VD>На начальном. Он попробовал и бросил.


Да ладно. Просто ты захотел, чтобы я превратил его в IDE и добавил поддержку проектов с автокомплитом. Я не вижу в этом ни грамма смысла.
Re[6]: Nemerle 1.x Sample Pack
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.10.11 15:52
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Да ладно. Просто ты захотел, чтобы я превратил его в IDE и добавил поддержку проектов с автокомплитом. Я не вижу в этом ни грамма смысла.


Тебе навязать чужую волю невозможно. Я высказал свои пожелания не более того. В любом случае по факту проект заглох не родившись. Ты бы его выложил хоть куда-то. Или в сниппеты, или создал бы отдельный проект.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Nemerle 1.x Sample Pack
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.10.11 16:20
Оценка:
Здравствуйте, Denom, Вы писали:

D>Та ладна... А если серьёзно?


Вот пример использования ResxFile TypeProvider для F#:
[<Generate>]
type T = Microsoft.FSharp.Data.TypeProviders.ResxFile< @"Support_Resource.resx" >

А вот пример использования его полного аналога для немерла:
[assembly: Nemerle.Macro.Resource(@"Properties\Resources.resx")]

Что называется найдите 10 различий.

К сожалению не могу найти исходный код этого провайдера. Тогда можно было бы сравнить объем кода обоих реализаций.
Кстати, наша реализация автоматически обновляется при изменении .resx-файла в проекте (во время работы IDE). Так что можно спокойно пользоваться редактором ресурсов или ручным редактированием .resx-файла и сразу же получать обновление типа. Что-то мне подсказывает, что для F# это будет не так (если, они, конечно не перепарсивают весь проект при любом изменении проекта).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Nemerle 1.x Sample Pack
От: Ziaw Россия  
Дата: 19.10.11 16:39
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Тебе навязать чужую волю невозможно. Я высказал свои пожелания не более того. В любом случае по факту проект заглох не родившись. Ты бы его выложил хоть куда-то. Или в сниппеты, или создал бы отдельный проект.


http://code.google.com/p/npad/
Re[8]: Nemerle 1.x Sample Pack
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.10.11 16:49
Оценка:
Здравствуйте, Ziaw, Вы писали:

VD>>Тебе навязать чужую волю невозможно. Я высказал свои пожелания не более того. В любом случае по факту проект заглох не родившись. Ты бы его выложил хоть куда-то. Или в сниппеты, или создал бы отдельный проект.


Z>http://code.google.com/p/npad/


Логично было бы перенести на гитхаб. А то никто и никогда его не найдет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Nemerle 1.x Sample Pack
От: CodingUnit Россия  
Дата: 30.10.11 16:18
Оценка: 144 (2)
Здравствуйте, VladD2, Вы писали:

VD>Оформить это дело можно прямо в вики на гитхабе. А код хранить в сниппетах.


Sample pack начинает наполняться здесь:
https://github.com/rsdn/nemerle/wiki/Sample-pack

Если кто хочет принять участие, пожалуйста.
Re[2]: Nemerle 1.x Sample Pack
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.10.11 18:30
Оценка:
Здравствуйте, CodingUnit, Вы писали:

CU>Sample pack начинает наполняться здесь:

CU>https://github.com/rsdn/nemerle/wiki/Sample-pack

CU>Если кто хочет принять участие, пожалуйста.


В Basic types print хорошо бы добавить примеры печати списков с помощью ..$(seq; separator; converter).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Nemerle 1.x Sample Pack
От: Rival Таиланд
Дата: 30.10.11 22:32
Оценка:
Нет ли здесь ошибки?
// Manipulating double-precision (64-bit) floating point numbers
    def pi1 : float = 3f  + 0.1415f;   // 'float' is an overloaded conversion operator
    def pi2 = 3 + 0.1415;   // identical - 'double' is a synonym for 'float'
    WriteLine($"pi1 = $pi1, pi2 = $pi2");


я не очень понимаю каким образом первая строка отображает операции с double-precision (64-bit) floating point numbers
а во второй строке как single-precision float может быть identical 'double'у?
«История жизни – это, по существу, развитие сознания, которое завуалировано морфологией.» Пьер Тейяр де Шарден
Re[3]: Nemerle 1.x Sample Pack
От: CodingUnit Россия  
Дата: 31.10.11 06:28
Оценка:
Здравствуйте, Rival, Вы писали:

R>Нет ли здесь ошибки?

R>
R>// Manipulating double-precision (64-bit) floating point numbers
R>    def pi1 : float = 3f  + 0.1415f;   // 'float' is an overloaded conversion operator
R>    def pi2 = 3 + 0.1415;   // identical - 'double' is a synonym for 'float'
R>    WriteLine($"pi1 = $pi1, pi2 = $pi2");
R>


R>я не очень понимаю каким образом первая строка отображает операции с double-precision (64-bit) floating point numbers

R>а во второй строке как single-precision float может быть identical 'double'у?

Да возможно, оригинальный пример выглядел так:
let pi1 = float 3 + 0.1415 // 'float' is an overloaded conversion operator
let pi2 = double 3 + 0.1415 // identical — 'double' is a synonym for 'float'

наверное надо переписать так:
def pi1 = (3 + 0.1415) :> float;

Спасибо за замечание.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.