Да-а-а! Пример крутой! Как «оно» «догадалось» построить пример фильтрации по типу?!
Тут уж стоит задуматься: откуда он(о) не просто «знает» про Рефал, а еще «понимает» его, в смысле может содержательно варьировать синтаксис? Угловые скобки и двоеточие мог позаимствовать из Хаскеля. Но для этого надо «понимать», что это родственные языки! Пишет выражения внутри [], «подразумевая» не один элемент списка, а его фрагмент. В принципе, это допустимая идея. Кажется, так сделано в Wolfram'овской Mathematica. Кстати, язык Wolfram — это фактически Рефал с синтаксисом, подкрученным под мат-формулы. Андрей On Thu, 30 Mar 2023 at 21:45, Sergei Skorobogatov s.yu.skorobogatov_AT_gmail.com <refal@botik.ru> wrote: > Запрос удалось сформулировать с первой попытки. > Другое дело, что я ведь на этом не остановился, и вторая попытка принесла > гораздо более забавные результаты :-) > > Вторая попытка отличалась от первой добавлением следующей фразы: > >> Please, be extremely precise and pedantic. All parts of the specification >> should be consistent with each other and contain sample programs. > > В результате получился гораздо более симпатичный рефал, без элементов > синтаксиса C++. > > Мне, в частности, понравился вот такой пример: > FilterInt: [A] -> [Int] { > [] = []; [s.1<Int> : e.tail] = [s.1 : <FilterInt e.tail>]; [s.1 : e.tail] > = <FilterInt e.tail>; } > > Здесь мы видим generic-функцию, принимающую на вход произвольный список и > возвращающую список целых чисел. При этом "гопота" изобрела гарды по типу в > образцах (s.1<Int>), хотя никто её об этом специально не просил. Это, так > сказать, творческое осмысление задания: раз попросили добавить в рефал > статическую типизацию, значит неплохо бы ещё добавить динамическую проверку > типов :-) > > Завтра, наверное, попробую ещё раз. Мне пришло в голову, что "гопота", > видимо, не просекла, что списки в рефале можно разбирать с любой стороны, и > надо бы ей явно об этом напомнить. > > чт, 30 мар. 2023 г. в 21:11, Andrei Klimov andrei_AT_klimov.net < > refal@botik.ru>: > >> Да, впечатляет! Сам я еще не научился пользоваться ChatGPT-ом (может, >> Сергей научит?), а с интересом изучаю диалоги, что выставили другие на >> просторах интернета. >> >> То, что некий «ИИ» может писать связный текст, хорошо структурированный >> по теме запроса (как здесь четко воспроизводится структура описания языка), >> — это, в принципе, может быть: на то он и содержит «базу знаний» как «базу >> шаблонов». Что удивительно — то, что он (она, оно) понимает задания, >> сформулированные короткими запросами. >> >> В связи с этим вопрос: Сергей, с какой попытки удалось сформулировать >> запрос, чтобы получить осмысленный ответ? Сколько «бреда» пришлось >> забраковать? >> >> Спрашиваю потому, что подозреваю, что всё выставляют удачные варианты >> беседы с ChatGPT, а муки поиска не показывают. Мои подозрения имеют смысл? >> >> Андрей >> >> >> On Thu, 30 Mar 2023 at 14:57, Sergei Skorobogatov >> s.yu.skorobogatov_AT_gmail.com <refal@botik.ru> wrote: >> >>> Всем привет! >>> >>> Я тут поразвлекался с четвёртой версией ChatGPT, выдав ей следующее >>> задание: >>> >>>> Please, write a short specification for a new functional programming >>>> language. The language should preserve the syntax and semantics of Refal >>>> language as much as possible, but every function declaration in it must be >>>> typed. >>> >>> >>> Результат получился довольно забавный, и мне захотелось им поделиться: >>> >>> Title: TypedRefal - A Typed Functional Programming Language Based on >>> Refal >>> >>> >>>