Pull to refresh

Comments 39

UFO just landed and posted this here
Круто! Теперь мне придётся свои интерпретаторы переписывать. Либо вообще выбросить :)
Вы так говорите, как будто не было lex/yacc/bizon.
Помню в инсте писали лабы по парсингу паскаля и си с помощью lex/yacc/bizon. Было интересно.
А у нас курсач был: написать транслятор и компилятор. Но задание было без бизона транслятор писать — через ПОЛИЗ. Вот это было тоже очень интересно
UFO just landed and posted this here
Sharp Coco/R тебе в помощь. На порядок удобнее F# варианта
Странно, что результатом сложения 1+1 будет «11». Т.е происходит конкатенация строк, хотя вот здесь написана конвертация в Double:
if currentFunctionName.Equals «get» then
Console.Write(«Input: „);
stack.Item(currentFunctionName).Add(“return», Double.Parse(Console.ReadLine()))

Где-то несостыковка?
Мемуары программистов — языки программирования :3
а какова скорость работы программы на выходе?
какой вид имеет программа на выходе?
У вас на F# одна императивщена. Может стоит писать на функциональном языкев функциональном стиле?
К 2010 году Микрософт таки написал свой аналог LEXX/YACC :)
Статье кстати плюс, но не надо писать в таком восхищенном стиле, как будто до этого ничего подобного не существовало :)
вообще они почти ничего не придумали. F# это OCaml.
Вообще-то вы либо не знаете OCaml и F#, либо хотя бы один из них. F# — это язык из семейства ML, в основу которого изначально был положен OCaml, не более. Сейчас же они довольно сильно отличаются. В общем утверждение «F# это OCaml» абсолютно ложно.
Помнится, в школе написали с другом компиляторы бейсика и паскаля для «Агата» (был такой советский «аналог» Apple II) на асме и форте. Реализовать сначала какой-нибудь урезанный lisp мы тогда не додумались, а жаль, все могло бы получиться гораздо быстрее.

А статья хорошая. Хоть Микрософт далеко не первый, кто пишет свой lexx/yacc )
Спасибо.
Переменные в F# объявляются с помощью ключевого слова let

В F#, как и в други ФЯП нет переменных.
F# поддерживает mutable типы, вполне себе переменные. А вообще — я не нашел подходящего слова, переменные более привычно…
Да, согласен про mutable и про то, что не всем будет сразу понятно слово «привязки».
зря вы так безапеляционно =)
В F# как и в некоторых других ФЯП переменные есть, например в Caml.
Может UTF? Символов хватит на всех, Постоянно расширяется, дополняется :-).

Ѣ#, Ѿ#,…
UFO just landed and posted this here
На этой фразе почему-то вспомнилась самая короткая программа для игры в шахматы, которая выглядела почти как mime64 :) Под некоторые задачи и правда иногда проще сначала свой язык написать, а затем уже реализовывать, нежели использовать С++ или что-то аналогичное.
Полностью поддерживаю, сам такой сделал. Есть даже название для таких языков —
предметно-ориентированный язык( domain-specific language, DSL).
Делал на bison и flex.
>>В F# аналогом namespace служит ключевое слово module,
это не так, namespace в F# так и называется — namespace.
А module — это статический класс. Другое дело, что в F# можно «открывать» модули.
О! Терь же можно замутить свой, принципиально новый Bolgen#!
А зачем в язык вводить оператор return? По моему проще было бы возвращать последнее вычисленное выражение.
Sign up to leave a comment.

Articles