Какие языки обеспечивают использование объектных литералов? - PullRequest
4 голосов
/ 31 декабря 2010

Какие языки обеспечивают использование объектных литералов? (Или на каких языках вы могли бы легко подражать им?) Можете ли вы привести пример кода?

Начиная с очевидного фрагмента JavaScript:

var someObj = {
    someProperty: 123,
    someFunction: function() {
        alert('hello!');
    }
};

Ответы [ 2 ]

4 голосов
/ 31 декабря 2010

Оформление заказа на C # анонимных типов

var Customer = new
{
    Company = "AgileApps",
    Website = "http://www.agileapps.co.uk",
    Name = "Big Al",
    Entered = DateTime.Now
};
2 голосов
/ 31 декабря 2010

Если вы замените объект на «термин», то Prolog сделает это естественным образом (фактически, нет другого способа создать объект).Вот пример с бинарными деревьями:

% find a node in List with a nil left child and call its rightmost grandchild X
member(node(nil,node(_,X)), List).

В Lisp и Scheme также есть несколько замечательных возможностей в этой области, в частности, цитирование и полуквотирование:

;; construct right-leaning binary tree with x as the rightmost grandchild
`(nil . (nil . ,x))

Практически все функциональные языки программирования скопированыэто в какой-то форме.

...