Думал над этим, но когда я первый раз заявил об этом плагине миру (на одном программистском форуме и в своем Телеграм-канале с 40 участниками), мир отреагировал достаточно пассивно и не проявил интереса и энтузиазма ) Но может действительно попробую реализовать эту идею общего шаринга.
Спасибо. Да, думал и в этом направлении, просто не знал, насколько Тэйпманки меня ограничит в том, что мне потребуется (до реализации расширения я точно не знал что может потребоваться от него), поэтому выбрал вариант написать все с нуля. Теперь же я действительно могу попробовать загнать это в Тэйпманки и проверить, хватает ли там возможностей для реализации всей логики.
ЧС на скриншоте демонстрацоныый, исключительно чтобы показать вам красивые скриншоты. Разумеется, после написания статьи я восстановил реальный черный список в локал сторадже браузера
Хм. А гит-пуш / гит-пулл / гит статус и т.п. на какой сайт за каким ориждином пойдут? Или это также передается параметрами? Не использовал еще такой вариант, надо будет покурить такую возможность.
Я понимаю, что есть миллион диалектов сабжа, но не верю, что среди них есть такие запущенные )
Если нет макросов — напиши свой макропроцессор. Гомоиконность, как-никак. Пишешь кот, квотишь его, скармливаешь функции преобразования, получаешь другой кот, копипастишь результат куда надо.
Про императивный стиль — и сейчас есть широко распространенные языки, в которых нет мутабельности от слова совсем. И ничего, живут как-то люди.
Defun — это (внезапно) тоже макрос ) То есть
(defun (f a b) (+ a b))
раскрывается в
(def f (lambda (a b) (+ a b)))
Про подозрения — не постиг смысл и идею что у вас там написано, но есть подозрение, что вы хотите накостылить семантику let без макросов через лямбды. Работать будет только если квотировать в месте использования конструкции каждый раз — потому что у лямбды аппликативная редукция в отличие от нормальной у макросов (по-русски, лямбда форсит вычисление своих аргументов, а макрос — нет), и результат придется еще эвалить — только не говорите, что в вашем диалекте не было eval )
let же может быть тривиально реализован как макрос — например
(let (a (+ 1 2 3)
b (* 4 5 6))
(foo (+ a b)))
раскроется как
((lambda (a b) (foo (+ a b))) (+ 1 2 3) (* 4 5 6))
и для этого не нужно ничего в ядре языка, макросы позволяют навернуть на базовых возможностях все что угодно. let* так же тривиально макросом реализовать, только там будет разворачиваться не в одну мультиарную лямбду, а в несколько вложенных унарных — для гарантии порядка вычисления аргументов, если он не гарантируется в колл-конвеншене вызова (как в Scheme, например).
Спасибо за интерес и замечания. Не написал ввиду очевидности, но порядок элементов внутри коллекций у меня сохраняется (хотя и пока отсутствуют стрелки для его изменения). А порядок полей объекта… Он приходит в виде жсона, там уже он теряется. Хотя, если в структуре полей есть ордер, по нему можно восстановить. Про легальные extension — если они определены в StructureDefiniton — я их вывожу с типами и как надо — в части ресурсов на демо-примере это видно. Про бестиповый текст я имел в виду т.н. нелегальные экстеншены, которые нарушают стандарт но могут присутствовать.
Про PUT и If-Match, простите, не понял. Не могли бы раскрыть мысль подробнее?
Хм… Когда я начал свою крайнюю статью точно так же, ее поместили в черновики с требованием убрать имя компании. С интересом наблюдаю за развитием событий в данном случае.
Поля (как на верхнем уровне, так и в любом вложенном объекте) отображаются в алфавитном порядке (для унификации, хотя можно сортировать по условному ордеру в схеме структуры ресурса). Список полей ресурса (вместе с их типами, списками допустимых значений, флагами обязательности и множественности значения) берется из StructureDefinition конкретного типа — независимо от наличия/отсутствия значений этих полей в выбранном элементе. Если при этом в элементе ресурса присутствуют поля, не перечисленные в StructureDefinition, то они показываются ниже и всегда как строки — потому что без метаданных я не знаю их тип, но как честный человек должен показать их наличие и дать некоторую возможность редактирования ) Насчет того, что не может менять — я конечно могу сделать id и часть других реквизитов недоступными для редактирования, но тот же id во многих ресурсах может нести некоторую семантику (например при синхронизации со сторонней системой или при загрузке стандартного каталога с четко определенными айдишниками). Поэтому, а еще для универсальности, я не стал запрещать их редактирование.
То, что вы говорите про "видеть сам ресурс"… Конечно, мне самому привычнее смотреть содержимое ресурса в форматированном ямле или жсоне ) Но так можно дойти до того, что — используйте Postman или просто браузер, кидайте запросы вручную и смотрите ответы текстом ) Но имхо это не лишает данный проект права на жизнь. Наглядная визуализация структуры ресурса, типов и описаний полей, демонстрация возможно незаполненных реквизитов, да и просто — почему бы и нет? В комментарии выше даже предвосхищали появление визуализатора подобного рода )
Насчет систем не скажу, но насколько я помню доклады на конференции — в Австралии и Канаде муниципальные структуры используют FHIR, в США также, но у них ситуация немного отличается — проще в чатике по ссылке из статьи напрямую спросить, там присутствуют участники, непосредственно занимающиеся этими вопросами. Россия традиционно не спешит быть в авангарде, присматривается к чужому опыту )
О, паралимпиада, люблю ) Кот претендует на медаль в номинации "уникального и необычного" ) Питон не знаю, но алгоритм тривиально пишется на любом языке, напишу на сях )
bool f (int *m, int b, int e) {
int c=(b+e)/2;
return b>=e ? true : b+1==e ? m[b]==m[e] : f(m,b,c) && f(m,c,e);
}
А вообще надо вводить новый моноидальный тип и решать эту задачу как свертку структуры по моноиду. Ибо в таком случае умный компилятор сумеет сам распараллелить процесс на нужное число потоков/ядер и порвать по бенчмаркам все предложенное.
А бывает и так (только что увидел и не смог не заскринить )))
Да, только в каждом проекте он разный - где-то толстый и неповоротливый, где-то старый, а где-то шустрый красивый...
Думал над этим, но когда я первый раз заявил об этом плагине миру (на одном программистском форуме и в своем Телеграм-канале с 40 участниками), мир отреагировал достаточно пассивно и не проявил интереса и энтузиазма ) Но может действительно попробую реализовать эту идею общего шаринга.
Спасибо. Да, думал и в этом направлении, просто не знал, насколько Тэйпманки меня ограничит в том, что мне потребуется (до реализации расширения я точно не знал что может потребоваться от него), поэтому выбрал вариант написать все с нуля. Теперь же я действительно могу попробовать загнать это в Тэйпманки и проверить, хватает ли там возможностей для реализации всей логики.
ЧС на скриншоте демонстрацоныый, исключительно чтобы показать вам красивые скриншоты. Разумеется, после написания статьи я восстановил реальный черный список в локал сторадже браузера
Круто, пасиб! Буду юзать! А я еще думал как мне с гитхаба куда-нибудь все продублировать, а оно вон как )
Хм. А гит-пуш / гит-пулл / гит статус и т.п. на какой сайт за каким ориждином пойдут? Или это также передается параметрами? Не использовал еще такой вариант, надо будет покурить такую возможность.
Решил побаловаться — написал лет через функцию. Только квотировать при вызове надо, как выше говорил
Я понимаю, что есть миллион диалектов сабжа, но не верю, что среди них есть такие запущенные )
раскрывается в
let же может быть тривиально реализован как макрос — например
раскроется как
и для этого не нужно ничего в ядре языка, макросы позволяют навернуть на базовых возможностях все что угодно. let* так же тривиально макросом реализовать, только там будет разворачиваться не в одну мультиарную лямбду, а в несколько вложенных унарных — для гарантии порядка вычисления аргументов, если он не гарантируется в колл-конвеншене вызова (как в Scheme, например).
Спасибо, понятно.
Спасибо за интерес и замечания. Не написал ввиду очевидности, но порядок элементов внутри коллекций у меня сохраняется (хотя и пока отсутствуют стрелки для его изменения). А порядок полей объекта… Он приходит в виде жсона, там уже он теряется. Хотя, если в структуре полей есть ордер, по нему можно восстановить. Про легальные extension — если они определены в StructureDefiniton — я их вывожу с типами и как надо — в части ресурсов на демо-примере это видно. Про бестиповый текст я имел в виду т.н. нелегальные экстеншены, которые нарушают стандарт но могут присутствовать.
Про PUT и If-Match, простите, не понял. Не могли бы раскрыть мысль подробнее?
Непросто понять нравы дикарей — сначала делают необоснованные предположения, потом делают из них космического масштаба выводы )
Хм… Когда я начал свою крайнюю статью точно так же, ее поместили в черновики с требованием убрать имя компании. С интересом наблюдаю за развитием событий в данном случае.
Спасибо.
Можно почитать обзорные статьи (и соседние по ссылкам), про опыт имплементации еще рассказывают на различных конференциях, как в России ОТКРЫТЫЕ СТАНДАРТЫ API, КАК ИНФРАСТРУКТУРА ДЛЯ ИННОВАЦИЙ: ПРИМЕРЫ МЕДИЦИНСКИХ ДАННЫХ HL7 FHIR INTERNATIONAL PATIENT SUMMARY, так и на многочисленных зарубежных. Но я не уверен насчет наличия материалов с них в сети.
Поля (как на верхнем уровне, так и в любом вложенном объекте) отображаются в алфавитном порядке (для унификации, хотя можно сортировать по условному ордеру в схеме структуры ресурса). Список полей ресурса (вместе с их типами, списками допустимых значений, флагами обязательности и множественности значения) берется из StructureDefinition конкретного типа — независимо от наличия/отсутствия значений этих полей в выбранном элементе. Если при этом в элементе ресурса присутствуют поля, не перечисленные в StructureDefinition, то они показываются ниже и всегда как строки — потому что без метаданных я не знаю их тип, но как честный человек должен показать их наличие и дать некоторую возможность редактирования ) Насчет того, что не может менять — я конечно могу сделать id и часть других реквизитов недоступными для редактирования, но тот же id во многих ресурсах может нести некоторую семантику (например при синхронизации со сторонней системой или при загрузке стандартного каталога с четко определенными айдишниками). Поэтому, а еще для универсальности, я не стал запрещать их редактирование.
То, что вы говорите про "видеть сам ресурс"… Конечно, мне самому привычнее смотреть содержимое ресурса в форматированном ямле или жсоне ) Но так можно дойти до того, что — используйте Postman или просто браузер, кидайте запросы вручную и смотрите ответы текстом ) Но имхо это не лишает данный проект права на жизнь. Наглядная визуализация структуры ресурса, типов и описаний полей, демонстрация возможно незаполненных реквизитов, да и просто — почему бы и нет? В комментарии выше даже предвосхищали появление визуализатора подобного рода )
Насчет систем не скажу, но насколько я помню доклады на конференции — в Австралии и Канаде муниципальные структуры используют FHIR, в США также, но у них ситуация немного отличается — проще в чатике по ссылке из статьи напрямую спросить, там присутствуют участники, непосредственно занимающиеся этими вопросами. Россия традиционно не спешит быть в авангарде, присматривается к чужому опыту )
На первую производную реагируем, да ) Хотя Будда завещал пребывать в равновесии.
… не смог запостить ссылку на одну фотку ))
О, паралимпиада, люблю ) Кот претендует на медаль в номинации "уникального и необычного" ) Питон не знаю, но алгоритм тривиально пишется на любом языке, напишу на сях )
А вообще надо вводить новый моноидальный тип и решать эту задачу как свертку структуры по моноиду. Ибо в таком случае умный компилятор сумеет сам распараллелить процесс на нужное число потоков/ядер и порвать по бенчмаркам все предложенное.