LINUX.ORG.RU

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

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

семантика в сишке это побочный эффект синтаксиса :)

anonymous
()

Lua используют красивые и успешные люди. Лохи и неудачники ненавидят Lua.

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

Это ошибка из разряда вызова функции popa(bla) вместо papa(bla) так что нет никакой проблемы.

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

идём дальше сишки. метасистема из сишки, например configure.sh – имеет окружение, понимает его и адаптируется к нему. на уровне метасистемы есть что-то что стирается на уровне системы конкретной. dnl конфигурация.

идём дальше сишки в терра и вместо конфигуре.ш в луа. на уровне луа метасистема имеет окружение луа, понимает его на луа и адаптируется к нему – код это данные а метакод это метаданные, мета окружения функциональные кода-замыкания это мета окружения объектные кода-замыкания это вдругорядь и то, и другое оба два метатаблицы.

идём дальше конфигуре.ш в литературно-грамотное мета – в cweb/ctangle для сишки кода + тех для доки или в fw для всего (метакода, метаданных) либо в ??? litLua luaweb/luatangle кода и метакода + sile для метадоки, метаданных.

метаданные это метакод это данные это код.

возьмём, к примеру обыкновенный квайн. у него есть побочный эффект – это нечто выводит свой код. который совпадает с полезным – собственным исходником. это Y-комбинатор неподвижной точки естественного преобразования.

теперь пишем квайн литературный. вдругорядь, у него два побочных эффекта – вперво 1: текстовый выхлоп (объект3) и собственный исходник (объект 1), представление в рантайме луа (объект 2) и трансляции с изоморфизмами объект 1 (в файле) -> объект 2 (в рантайме луа-интерпретатора и в компайлтайме луа-компилятора) -> объект 3 (в рантайме объекта 2).

во-вторых, 2: описание человекопонятное – второй побочный эффект.

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

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

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

на третьем уровне происходит оптимизация метамашины, этого дерева конфигураций в метаданных – которого сразу не видно.

почему луа? а не рефал какой-нибудь. наверное потому что в расширяемой метасистеме луа/терра/litLua с объектами-метатаблицами литературными, «код в код» как «модель в модель» а не объектами-текстовыми выхлопами «текст в текст» вот такие коэволюции этих метатаблиц самих на себе – это эволюции незримые.

мир дальний, мир горнiй

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

третий побочный эффект на уровне третьей сигнальной системы.

развивайте третью импульсную, людены.

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

Если человек сам понимает о чем говорит, то он всегда и объяснить сможет. А у тебя сразу видно что поток сознания под соусом суржика, да еще упомянул столярова (о таком лучше вообще помалкивать), скажи честно, ты бы сам себя читать стал?

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

если захочет кому объяснять. зачем объяснять тому, кто понять не сможет ибо не хочет и пробовать?

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

зачем пробовать если там есть столяров, епта? сразу же видно что таблетки забыл выпить.

если ты подсос столярова или он сам, так и скажи, а то ангажированно смотришься сейчас

кто понять не сможет ибо не хочет и пробовать?

не обязательно хотеть что бы понять, иди назад в школу, Сократ малолетний

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

ну тебе же всё сразу видно, всё понятно. да не то что нужно.

поэтому ты и не пробуешь понять суть.

на уровне какой сигнальной системы твоё ложное псевдопонимание?

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

на уровне какой сигнальной системы твоё ложное псевдопонимание?

ну хорошо. это вопрос с подвохом, я прав?

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

я вот не знаю чего ты на Столярова стриггерился, хотя речь не о нём. а с его мнением про побочные эффекты я в общем-то согласен, даже дальше его можно развить в мета уровнень.

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

Lua используют красивые и успешные люди. Лохи и неудачники ненавидят Lua.

Да, а еще мудаки на нем не пишут.

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

И как, заходит ?

Не до него пока. Ближе к выходным гляну.

То ли еще будет.

Там уже раздули такую бюрократию, что ни до чего не договорятся. Да и груз технического долга уже есть.

да не надо ему развиваться. Он готов.

Так другие расширятся.

ЖСники – может быть потеснят, но бьюти оф симплисити ЖСники не потянут.

Да в чём «симплисити»? Языки-то по сути схожи. Сейчас к quickjs сделать нормальные доки, автообёртки для си/плюсов, прикрутить туда какой-нибудь jit и получится ни чуть не хуже. Вся разница будет только за счёт взаимной расово-релизиозной ненависти.

ЖС, конечно будет, но будет совсем не тот, что сегодня (вспомни его 10, 20 лет назад)

Тенденции имеют свойство меняться со временем. Сейчас там нет такого движа, как даже 3-4 года назад.

crutch_master ★★★★★
()

local v=0,rst = base.RecordSet; if not rst then return nil end --;?!

Да, эта строчка не работает.

local a=1, b=1 --это просто не компилируется
local a, b=1 --это компилируется со значениями a=1, b=nil (т.е. наш RecordSet=nil выходит)

работает:

local a, b = 1, 2 --или так
local a = 1; local b =2 --или так

----------------------

Мне, собственно, было любопытно сравнить время исполнения - мой стиль «по-деревенски в лоб» VS ваш «красиво-с-замыканиями».
Живых данных тех БД я, конечно, не храню у себя - на реальном не погонять. А так, на огрызках, os.clock() практически никакой разницы не показывает. Оба варианта от 0 до 0.016 цикл проходят.

Toxo2 ★★★★
()
Последнее исправление: Toxo2 (всего исправлений: 1)
Ответ на: комментарий от pihter

И как, заходит ?

Почитал на обеде. Короче, как я и говорил, луа - это тоже самое, что и жс. В этих языках даже stringBuffer делается одним и тем же образом через соединение массива. Функции, замыкания и объекты работают совершенно одинаково, разве что в жс нет перегрузок. Все приёмы, которые делаются в луа, так же делаются на жс и обратно.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 3)
Ответ на: комментарий от anonymous

The code could be good or bad and it is not a matter of personal taste.

Сильное заявление ) И какой из вариантов

local a, b = 1, 2
local a = 1; local b =2
господин Степанов А.А. однозначно отметит good и bad?
А если «a» будет что-нибудь вроде «ЕстьЗадержкаВыполненияЗаданияПолученияИОтправкиПисем»?

Мне как бы щёки надувать не к чему - я могу честно признаться, что роясь в своих архивах своих исходников, на любых языках - я не нахожу ни одного куска длиннее полустраницы, который бы не вызывал эмоцию «П-ц! Какой дебил это писал?» И прям вот очень слабо верю, что есть честные программисты, которые честно довольны своим вчерашним кодом.

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

Явное деструктивное присваивание лучше

var [a, b, c] = [1, 2, 3];
var {a, b, c} = {a : 1, b : 2, c : 3};

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

The code could be good or bad and it is not a matter of personal taste.

Обращу внимание на отсутствие only в выше процитированном.

Почта на сайте его бумаг.

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

Хоть с only, хоть без.
Это утверждение по сути - религиозное.

Код не делится на хороший и плохой. И языки так не делятся.

Выхлоп программиста - или полезный, или бесполезный. Вот так делится. Вот тут я могу понадувать щёки, что мой стыдно-, плохо-, говнокод - помогал добывать нефть, ловить бандитов, учить детей и т.д. в зависимости от места работы по времени.

Ладно, простите. Куда-то не туда понесло )

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

фасетов на мир много.

в одном из срезов код хороший либо плохой либо континуум градаций промеж.

при производстве шагающих экскаваторов важно мерить не только число шагающих экскаваторов на очередной итерации.

Один из продуктивнейшэх дней одного из не последних программистов был в удалении некоторого много большего 0 строк кода с сохранением «семантики»(не было времени найти более точное слово - обозначающее «смысл существования» того кодища из которого было отчищено)

сейчас не та ситуации когда нужно тюнить работающий код -

да и сами «недостатки» в реализациях порождают рынок по обходу.

совершенные реализации внеэкономичны - и в отличие улучшающихся от версии к версии продуктов не перспективны в подписной модели.

зы. инфраструктура как подсистема, рынок как подсистема

qulinxao3 ★☆
() автор топика
Последнее исправление: qulinxao3 (всего исправлений: 1)
Ответ на: комментарий от anonymous

тут 0 замыканий

*внешний анонимный вызов для досрочных переходов.

по сути операторные скобки для «break» (c возможностью сокращения внешних имён для лаконичности и ясности кода внутри таковых скобок.)

*внутренний обёрнутый анонимный for - это генерация данных на месте их присвоения полю словаря.

«Код это данные» и всё такое.

зы. всёж lua не чисто императивное нечто - оно и мусорок собирает

qulinxao3 ★☆
() автор топика
Ответ на: комментарий от crutch_master

Так другие расширятся.

Кто другие? Другие языки? Да и пусть – луа постулирует простоту, тем и хорош: ничего лишнего. Все другие развиваются (==вечно_нестабильны), не знаю, заведется JS-код 15-летней давности, ну может и заведется…

Да в чём «симплисити»? Языки-то по сути схожи

Я в школьнико еще был, изучил тогдашний JS и в прошлом году изучил заново – не было ощущения что это один и тот же язык второй раз учу :)

Симплисити луа в краткости-сетра-таланности. Мизерная стандартная библиотека, минимальный набор конструкций языка и тому подобное. И никто не спешит по первому зову моды сразу какие-нибудь асинки/авеиты вводить, веркеры или че там нынче модно. Я вот про эту симплисити – он маленький и намерен таким оставаться, а JS – будет как питон всем бочкам затычка (что, собственно, не плохо, но не то)

Сейчас там нет такого движа, как даже 3-4 года назад.

Меня хватает на отслеживание этого движа не с разрешением в год, а в 10 лет. Я не так в теме, как большинство

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

Короче, как я и говорил, луа - это тоже самое, что и жс. В этих языках даже stringBuffer делается одним и тем же образом через соединение массива. Функции, замыкания и объекты работают совершенно одинаково, разве что в жс нет перегрузок. Все приёмы, которые делаются в луа, так же делаются на жс и обратно.

главная сила (и историческое предназначение) луа – это встраиваемость в си (и обратное – склеивание си). Запилили бы JS на том же уровне – цены б ему не было. Ну и размер/скорость у Луа здоровские, но тут JS, учитывая последние тенденции, если и не догонит-перегонит, то уж не в разы отстанет явно.

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

фасетов на мир много.

в одном из срезов

вот зря «идущего к реке» про ГРАНИ удолили, ведь всю правду как на духу сказал :)))

Один из продуктивнейшэх дней одного из не последних программистов был в удалении некоторого много большего 0 строк кода с сохранением «семантики»(не было времени найти более точное слово - обозначающее «смысл существования» того кодища из которого было отчищено)

про эволюцию смыслов третьей импульсной.

если так подумать, про метасистемный переход сигнальной системы.

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

на уровне второй сигнальной системы – информационное: инфа, модели, знания, логика. здесь количество инфы не означает качество, нужно что-то ещё. возникает рефлексия (первого уровня), что это и зачем. осмысление. но ещё дополнительно к первой. то есть «ненужная информация» если первая не пускает, нет завершенности или ощущения нужности такого гештальта, переживания.

если взять колмогорову сложность этой инфы, то какая инфа нужная? нужны смыслы.

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

инфа воспринимается тогда когда есть какое-то переживание, кризис/катарсис/просветление, S-образная лёрнинг курва нужности этой инфы. тогда один определяющий момент стоит тысячи байтов инфы, когда происходит осознание смысла, нужности именно этого знания.

если взять киборгов, то в психологии киборгов можно посмотреть киборгов-организаций. цели, достижение целей, процессы, системы управления процессами и рисками/возможностями и целями/смыслами.

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

тогда в продуктивности удаления ненужно (с сохранением смысла, даже нового качества смысла) нет ничего необычного.

зы. инфраструктура как подсистема, рынок как подсистема

под/над/мета система чего?

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

тут 0 замыканий

ну как посчитать. если всё подряд то даже 4:

  1. rst:Sort{{field=5,descent=true},{field=7},{field=10}}

  2. arrSimpleConv[v] = { .. }

  3. Rules = (function(B) local a={} … return a end)(rec:GetValue(20, 0))

  4. (function() .. end)()

*внешний анонимный вызов для досрочных переходов.

*внутренний обёрнутый анонимный for - это генерация данных на месте их присвоения полю словар

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

то есть они там неявно есть, просто сразу вычисляются.

если сделать их явными, и сохранять в какой-то БД замыканий, то …

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

замыкание видишь? - ..... - а он(о) есть!

по завершению сих вычислений где либо локальные(в сих литеральных выражения) суЩьности суЧествуют?!
следовательно замыканий нЭт.

не сразу функцию вызываешь

Ы?. чанк в функ.скобках(т.е обёрнут и вызван) в обоих случаях для локализации контекста - после возврата из вызова всё(кроме результата которое - «ну ты поняль»)вновь созданное в мусорке.

qulinxao3 ★☆
() автор топика
Последнее исправление: qulinxao3 (всего исправлений: 1)
Ответ на: комментарий от anonymous

выше указанные 3 системы находятся в не транзитивном порядке

целого(ака единой над) в данном контексте - в отношении которого и рынок и инфраструктура обеспечивающая функциклирование рынка и рынок указывающий(сознательным(самозародившимся в том числе) акторам)(на ряду с другими контурами развития - ибо ры-ч-й фундаментализм есть данайский-дар упрощение) в какую сторону двигать инфраструктуру

qulinxao3 ★☆
() автор топика
Последнее исправление: qulinxao3 (всего исправлений: 1)
Ответ на: комментарий от pihter

И никто не спешит по первому зову моды сразу какие-нибудь асинки/авеиты вводить,

Так async/await - это крайне необходимый костыль, чтобы избавится от колбеков, а не какая-то придурь хипстеров.

веркеры или че там нынче модно.

Воркеры - это тоже самое, что и coroutine. Просто доделали то, что и так было у всех.

не было ощущения что это один и тот же язык второй раз учу :)

Так там поменялось только то, что выкинули колбечную лапшу и делают оптимизации, например, чтобы можно было обходить массив через forEach и это не было в 10 раз тормознее, чем через for. А так, всё как крутилось вокруг объектов, так и крутится.

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

делают оптимизации, например, чтобы можно было обходить массив через forEach и это не было в 10 раз тормознее, чем через for

Что это за оптимизации?

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

Я и спрашиваю, что изменилось?

То что в ОПРЕЛЕТЕННЫХ движках в жит компилятор добавили инлайн мономорфных функций, никакого отношения к форич не имеет. Во-первых этот инлайн одинаково работает с любыми функциями вызываемыми многократно, во-вторых эта эволюционность развивалась паралоельно стандартам и в тот же v8 быда затащена намного раньше метода форич, в третьих какая оптимхация вообще может быть со стороны спецификации - если ты загоянешь в нее узнаешь, что метод форич напротив добавляет множество оверхеда на проверку входящих значений.

Вот я и спрашиваю, о каких оптимизациях ты говоришь.

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

Воркеры - это тоже самое, что и coroutine.

Не вводи людей в заблуждение, воркеры - это полноценный многопоток. Корутины однако живут в одном треде, да ещё и явно переключаются между собой через resume, yield и т.п.

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

Вот я и спрашиваю, о каких оптимизациях ты говоришь.

Да я протупил. Он и сейчас в 10-12 раз тормознее, чем for. Неудачный пример.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от anonymous

Корутины однако живут в одном треде, да ещё и явно переключаются между собой через resume, yield и т.п.

В мануале луа было написано что-то про thread, ну ладно, значит в жс воркеры лучше, чем corounite в луа.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Смотря какого for. For..of неявно вызывает генератор и ходит по итератору, что равносильно форичу, так что разницы почти никакой, а иногда for..of модет быть жаде медленнее, потому как все неявные операции медленнее явных.

Тот for который for(;;)применим только к индексиированным коллекциям, а не все коллекции таковые. Есть еще while если что, и он исторчески быстрее всего.

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

Смотря какого for.

For(;;) по массиву имею ввиду.

Есть еще while если что, и он исторчески быстрее всего.

+- одно и тоже. Может я, конечно, криво бенчу.

var time = function(f) {
    var start = new Date().getTime();   
    f();
    return new Date().getTime() - start;
}
var timeAvg = function(f, tries = 10) {
    var sum = 0;
    for (let i = 0; i < tries; i++) {
        var t = time(f);
        sum += t;
    }
    return sum / tries;
}

var arr = [];
for (let i = 0; i < 10**7; i++) arr.push(i);
var t = 0;

timeAvg(()=>{
    for (let i = 0, c = arr.length; i < c; i++) { 
        arr[i] == 100 && ( t += 1) 
    }
}, 10000);
>>> 6.3912
timeAvg(()=>{
    let i = 0; 
    while (i < arr.length) { 
        arr[i] == 100 && (t += 1); 
        i++; 
    }
}, 10000);
>>> 6.5894

Хотел забенчить на луа, но не шмог. В луа 5.2 нету системного таймера с миллисекундами из коробки.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 2)

Lua может использоваться как начальный язык для обучения алгоритмам. Легковесный и понятный.

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

истёк срок редактирования

arrSimpleConv=
          (function(result,base)if not base then return result end
  for rec in (function(rst) if not rst then return pairs({}) end 
                       rst:Sort{{field=5,descent=true},{field=7},{field=10}}
                return rst.Records end)(base.RecordSet) do
    result[#result+1]= { 
                         Type = rec:GetValue(5),
                         LegName = rec:GetValue(10),
                         PickName = rec:GetValue(11),
                         FlagHierarch = tonumber(rec:GetValue(30)),
                         Rules = (function(result,input)
                                for i,p in ipairs(input) do
                                  result[i] = table.unserialize(p)
                                end return result end)({},rec:GetValue(20, 0))
                       }
  end return result end)(arrSimpleConv or {},CroApp.GetBank():GetVocabulary():GetBase("XX"))	

составные не по значению - по ссылке :)

qulinxao3 ★☆
() автор топика
Последнее исправление: qulinxao3 (всего исправлений: 2)
Ответ на: истёк срок редактирования от qulinxao3

Очень круто ) Я минут 10 читал, чтоб понять как оно разворачивается сзаду-наперёд ) У вас родной арабский? )

Кронос не смог оценить такой высоты мысли и умер:

Cronos.exe caused an EXCEPTION_ACCESS_VIOLATION in module Cronos.exe at 001B:00B39553
EAX=00000000  EBX=03FE6090  ECX=0435F518  EDX=0429B5D0  ESI=04349848
EDI=000000D0  EBP=0277F61C  ESP=0277F5F0  EIP=00B39553  FLG=00010206
CS=001B   DS=0023  SS=0023  ES=0023   FS=003B  GS=0000
001B:00B39553 (0x03FE6090 0x00000001 0x03FE6090 0x0277F648) Cronos.exe

Кроме как отшучиваться - разве что я бы попереживал-таки, что глобальная таблица arrSimpleConv совершенно напрасно не используется сразу. На мой взгляд - лишнее присвоение. Пусть и ссылкой, но всё равно - лишнее.

Он же неспроста глобальный - он хранит в себе все описания конвертации, которые можно просто описать «из какого файла, в какой, какой номер поля, в какой». Те места, которые совсем нельзя описать в правилах - конвертируются совсем отдельно.
А вот такие правила, например:

{LegName="A_RELAT",Type=33,Rules={{2,13,},{3,12,},{4,14,},{12,501,},{14,502,"na",},{13,503,"tc",},{10,505,"dp",},{11,506,"tp",},{12,503,"dc",},}
я уже точно не вспомню, что имел ввиду, под na-tc-dp-tp-dc. Это какие-то поля связей между файлами (БД, таблицами - зависит от терминологии). Один раз собрали в глобальную переменную все правила, потом уже не дёргаем саму базу, конвертируем по описаниям. Как-то так.

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

упс - внимательней не умолчальнной глобальностью!?

так крашиться?:

do local base=CroApp.GetBank():GetVocabulary():GetBase("XX")) if base then 
  for r in (function(R) if R then Sort{{field=5,descent=true},{field=7},{field=10}}
              return R.Records end return pairs({}))(base.RecordSet)
  do arrSimpleConv[#arrSimpleConv+1]= { 
                         Type=r:GetValue(5),
                         LegName=r:GetValue(10),
                         PickName=r:GetValue(11),
                         FlagHierarch= tonumber(r:GetValue(30)),
                         Rules = (function() local res
                                  for i,p in ipairs(r:GetValue(20, 0))
                                    do res[i] = table.unserialize(p)
                                 end return res end)()
                       }
end end end	

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

частичный возврат к авторскому варианту

local base=CroApp.GetBank():GetVocabulary():GetBase("XX") if base then 
  for r in (function(R) if R then Sort{{field=5,descent=true},{field=7},{field=10}}
              return R.Records end return pairs({}))(base.RecordSet)
  do arrSimpleConv[#arrSimpleConv+1]={ 
        Type=r:GetValue(5),
        LegName=r:GetValue(10),
        PickName=r:GetValue(11),
        FlagHierarch=tonumber(r:GetValue(30)),
        Rules=(function() local res for i,p in ipairs(r:GetValue(20, 0))
                                    do res[i]=table.unserialize(p)end 
               return res end)()
     }
end end 	
qulinxao3 ★☆
() автор топика
Ответ на: частичный возврат к авторскому варианту от qulinxao3

Всё ещё не могу победить.

Вот тут:

   for r in (function(R) if R then Sort{{field=5,descent=true},{field=7},{field=10}}
              return R.Records end return pairs({}))(base.RecordSet)
что-то запуталось, не могу распутать.

Sort - понятно, что вы опечатались - надо R:Sort. Но это не влияет, сортировку вообще можно выкинуть.

Toxo2 ★★★★
()
Последнее исправление: Toxo2 (всего исправлений: 2)
Ответ на: комментарий от Toxo2

почти не отличающееся от изначально вашего:

local base=CroApp.GetBank():GetVocabulary():GetBase("XX") if base then 
  for r in (function(R) if R then R:Sort{{field=5,descent=true},{field=7},{field=10}}
              return R.Records end return pairs({})
                end)(base.RecordSet)
  do arrSimpleConv[#arrSimpleConv+1]={ 
        Type=r:GetValue(5),
        LegName=r:GetValue(10),
        PickName=r:GetValue(11),
        Rules = (function() local res for i,p in ipairs(r:GetValue(20, 0))
                                    do res[i]=table.unserialize(p)end 
          return res end)(),
        FlagHierarch=tonumber(r:GetValue(30)),
     }
end end 
qulinxao3 ★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.