К основному контенту

Nemerle и выразительность языка програмирования

Язык программирования Nemerle является мультипарадигменным и полнофункциональным языком программирования, впитавшем в себя идеи ML, Lisp, C#.

Возьмем для примера следующий код:

#pragma indent

using Nemerle
using System.Console

def a = $[1 .. 10]

foreach(c when c % 2 == 0 in a with i)
    WriteLine($"a[$i] = $c")
 
 
Как мы видим, одна простая идея, что все есть выражение позволяет нам делать код простым и понятным.

Как тоже самое реализовать в C#? Используя Linq? Но будет ли код тогда такой же однородный и понятный? В примере использованые базовые возможности языка без дополнительных расширений.
Шутка, на самом деле базовый синтаксис Nemerle вообще не содержит таких конструкций как if, foreach и т.д., есть только оператор match, синтаксические расширения (сахар) написан на макросах по аналогии с макросистемой Common Lisp.

Комментарии

Популярные сообщения из этого блога

Будда не принимает форм

Будда не практикует дзен. Смотрите не видя,  слушайте не слыша,  знайте не зная.

Кирилица в Arch Linux

После вчерашних обновлений в консоли Arch Linux при выборе русской локали вместо букв печатаются белые квадратики. Очевидно, что по какой-то причине не загружается прописанный в rc.conf шрифт. Временное лекарство от этого: выполнить команду setfont cyr-sun16 . Еще у меня в момент начальной загрузки появляется рябь на экране как от сильных электромагнитных помех в ЭЛТ, хотя у меня ЖК. Может быть это как-то связано.

Сортировка массивов в groovy

Любой массив в java и groovy можно отсортировать статическим методом: Arrays.sort(c); причем это будет очень быстро сто тысяч элементов типа int сортируются за 1 секунду на celeron M 1,8 Mg. Если это массив объектов можно использовать перегруженный метод Arrays.sort(c,comporator);