@Fsharp_chat

Страница 445 из 772
Friedrich
04.01.2018
07:13:40
Да у тебя же неткор!

Я так понял что библиотеку написанную на F# (.NET Core) нельзя использовать в C# (.NET Framework)?
Библиотеку, написанную под .NET Core, в общем случае нельзя использовать в программе под .NET Framework, независимо от языков программирования. А вот если ты библиотеку напишешь на .NET Standard — тогда можно будет использовать и там, и там.

Ну всякие там единицы измерения, или они каким то образом конвертируются в что то более приемлимое в C#?
Единицы измерения из C# просто не видны. У тебя будут обычные методы, принимающие double или int. Большинство остальных возможностей, как правило, видно, но ими не всегда удобно из C# пользоваться.

А такой вот вопрос: есть 2 репозитория https://github.com/fsharp/fsharp https://github.com/Microsoft/visualfsharp В обоих написано что содержит компилятор, Core library и т.д. Вторая это форк или какая то своя версия, есть разные реализации компиляторов или что ?
Можно подробнее почитать тут: http://fsharp.github.io/2014/06/18/fsharp-contributions.html (Но история в целом достаточно мутная — сам понимаешь, историческое наследие. Ребята из команды разработки хотят это всё в конце концов распилить и сделать нормально.)

Google
Григорий
04.01.2018
07:41:52
а rider?
В 2к17 ноутбук с 2 гигами оперативы, запускать на нем райдер еще то зрелище=), emacs мое все, в основном пишу скрипты, довольно удобно, для остальных целей vs

Evgeniy
04.01.2018
09:34:06
Привет

Pavel
04.01.2018
09:34:26
привет

Григорий
04.01.2018
09:36:03
привет
Привет

А есть языки программирования, написанные на F#?

Pavel
04.01.2018
09:45:02
а зачем писать язык программирования на F#?

DSL понятно. а язык?

Klei
04.01.2018
09:46:04
"Потому что мы можем!" (c)

john
04.01.2018
09:46:11
второй вопрос - интрерпретатор или компиллятор?

Григорий
04.01.2018
09:46:39
Google
Anna
04.01.2018
09:46:48
http://flint.cs.yale.edu/cs421/case-for-ml.html вот баянчик на эту тему

Почти все пункты вроде можно и к F# применить

Pavel
04.01.2018
09:48:52
"Потому что мы можем!" (c)
это почти про любой язык. с пишут на с, ++ на с++, хаскель на хаскеле, f# на f# и т.д

Anna
04.01.2018
09:49:50
Тема для чатика, который заглох, не успев появиться ?

A64m
04.01.2018
09:56:44
ну вот агда написана не на агде, идрис не на идрисе, пурскрипт не на пурскрипте, эльм не на эльме

Григорий
04.01.2018
09:57:44
Pavel
04.01.2018
09:58:38
изначально F# и выглядел как OCaml без системы модулей. это потом он уже получил лайт синтаксис по дефолту

A64m
04.01.2018
09:59:47
ну и первый хаскельный компилятор не на хаскеле был написан, а для F# с самого начала предполагалось компилятор на F# писать, окамл только чтоб бутстрапнуться

я все же про языки, компиляторы которых годами на других языках пишут

Pavel
04.01.2018
10:02:21
"первый хаскельный компилятор не на хаскеле был написан" логично. у всех так

A64m
04.01.2018
10:02:22
я уж не говорю про то, что компилятор C# сколько лет не на C# был написан

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

Pavel
04.01.2018
10:04:22
https://www.youtube.com/playlist?list=PLpVeA1tdgfCCUuAtFl0N5wzatXx0gWLKM&disable_polymer=true может кому интересно будет

A64m
04.01.2018
10:05:22
с первым хаскельным компилятором было не так, это был фронтенд к lazyML компилятору который лет десять до того существовал и 10 после, и все время его на lazyml писали, а бутстрапали компилятором, написанным на промежуточном нетипизированном языке вроде окамловой эфлямбды или гхц-ного стг

A64m
04.01.2018
10:06:48
так что не всегда имплементации ЯП на самих себе ишут, часто и на других языках

Pavel
04.01.2018
10:07:59
так что не всегда имплементации ЯП на самих себе ишут, часто и на других языках
на начальном этапе возможно. но при переходе в стабильные версии обычно все сводится к тому что пишется все на самом себе

A64m
04.01.2018
10:08:19
я именно про выход на стабильные версии

Max
04.01.2018
10:08:38
На чем же тогда компилятор С# написан по вашему? И как он в CLI переводится

Google
A64m
04.01.2018
10:10:45
больше 10 лет первых компилятор С# был на плюсах написан

Max
04.01.2018
10:11:23
больше 10 лет первых компилятор С# был на плюсах написан
А щас не так? Как это вообще, компилятор языка на нем самом

A64m
04.01.2018
10:11:56
сейчас на C#

Max
04.01.2018
10:12:35
сейчас на C#
Типо сейчас C#->CLI->ByteCode ?

Artemy
04.01.2018
10:12:45
Roslyn же

А щас не так? Как это вообще, компилятор языка на нем самом
Ну, как я понимаю, сначала компилятор для языка X пишется на каком-то другом языке Y. Затем пишется новый компилятор для языка X на самом языке X и компилится старым компилятором.

И всё, понеслась

Max
04.01.2018
10:15:51
И всё, понеслась
Так как сейчас выглядит полный список прослоек, между кодом и исполняемой программой? У C#

A64m
04.01.2018
10:16:17
это-то тут причем?

Max
04.01.2018
10:16:23
Просто интересно

Evgeniy
04.01.2018
10:27:34
Привет.

https://github.com/fsprojects/Argu/pull/100

Тут давненько уже не было про пурсу, но на всякий случай: сделали отдельный чатик, налетай: @purescript_ru

@angmarr Ты спрашивал, а я тебя к лалкам в прошлый раз отправил. :)

Igor
04.01.2018
10:50:34
Спасибо, но я уже перегорел (да и я тоже есть в elm чатике)

Friedrich
04.01.2018
10:51:27
А есть языки программирования, написанные на F#?
В частности, есть инфа, что первый компилятор TypeScript был написан на F#.

Ну или вот можно на мои (не единолично мои, но в основном) поделки посмотреть: https://github.com/codingteam/naggum

На чем же тогда компилятор С# написан по вашему? И как он в CLI переводится
Первый компилятор C# (cs.exe который) был на плюсах. Одной из мотиваций для разработки Roslyn было то, что его старая кодовая база, по словам авторов, тормозит развитие языка.

Evgeniy
04.01.2018
10:58:06
В частности, есть инфа, что первый компилятор TypeScript был написан на F#.
Веселая история. Жаль, я куда-то ссылку потерял.

Google
Friedrich
04.01.2018
10:58:43
Веселая история. Жаль, я куда-то ссылку потерял.
Я нагуглил: https://hackernoon.com/the-first-typescript-demo-905ea095a70f?gi=537db5235190

Evgeniy
04.01.2018
10:59:03
О, спасибо!

Alexander
04.01.2018
11:13:25
Я опять к вам с проблемами)

При подключении обычной библиотеки на стандарте к framework проекту всё запускается нормально, но если к той библиотеке подключена FSharp.Data то всё крашится

При этом библиотека ругается на FSharp.Data, но интеллисенс работает



Конкретно говорит что FSharp.Data был восстановлен с помощью .NETFramework

Основной вопрос: почему всё же FSharp.Data устанавлинается на .NETStandart библиотеку восстановленной с помощью .NETFramework

Вроде всё порешал

Просто добавил в файл библиотеки open FSharp.Core

но я не понимаю почему это сработало

Evgeniy
04.01.2018
21:17:46
Привет.

Igor
04.01.2018
21:32:46
А если при импорте (open) в двух модулях есть классы/модули с одинаковыми именами, можно как-то указать какой конкретно нужен? Желательно что бы обращаться к нему можно было, без доп. указания пути.

Evgeniy
04.01.2018
21:35:20
И для типов.

https://stackoverflow.com/questions/3918744/how-to-use-namespace-or-type-alias-abbreviation

А сам open ничего не умеет.

Igor
04.01.2018
21:40:03
Знаю, но что-то некрасиво выходит. Жалко порядок open ни на что не влияет и интерфейс всегда перекрывает модуль.

Klei
05.01.2018
01:45:34
Знаю, но что-то некрасиво выходит. Жалко порядок open ни на что не влияет и интерфейс всегда перекрывает модуль.
А можно пример? Ибо данные типы используются настолько по-разному, что у меня проблем пока не возникало.

Friedrich
05.01.2018
06:24:25
Просто добавил в файл библиотеки open FSharp.Core
Погоди, то есть у тебя получилось заюзать тайп-провайдеры в проекте на .NET Standard?

Google
Friedrich
05.01.2018
06:26:54
Конкретно говорит что FSharp.Data был восстановлен с помощью .NETFramework
На самом деле, это интересный вопрос — кажется, у FSharp.Data есть PCL-вариант, ты можешь использовать его. Для этого нужно было правильно настроить fallback в проекте (fallback позволит проекту на .NET Core или .NET Standard использовать PCL-штуки, и это должно работать чуть более надёжно, чем установка пакета от .NET Framework).

Friedrich
05.01.2018
07:27:59
Во последних версиях SDK не надо ничего настраивать же.
Как это не надо? Оно само себе делает фолбэк на PCL?

Igor
05.01.2018
08:41:25
А можно пример? Ибо данные типы используются настолько по-разному, что у меня проблем пока не возникало.
Promise из Fable, если заимпортить оба пакета open Fable.Import.JS open Fable.PowerPack то интерфейс Promise из import.js всегда перекрывает модуль с тем же названием из powerpack При этом в этих неймспейсах есть много др нужных функций, которые хотелось бы использовать без до. квалификаторов.

Теперь еще столкнулся что Option из Fable.Import.Browser перетирает стандартный Option ?‍♂️

Как относитесь к тому, что бы разрешить перечислять классы/функции который конкретно импортируешь? Типа (в скале подсмотрел): open Fable.Import.JS.{FormData, decodeURI}

Igor
05.01.2018
10:07:41
А не проще alias-ы использовать?
Ты предлагаешь каждую функцию/класс внутри нужного неймспейса алиасить или весь неймспейс и потом добавлять его к каждому вызову?

Klei
05.01.2018
10:10:25
Ты предлагаешь каждую функцию/класс внутри нужного неймспейса алиасить или весь неймспейс и потом добавлять его к каждому вызову?
Первое. С функциями перебор конечно, но с типами не должно быть особых проблем, все равно придется прописывать их имена в импорте.

Igor
05.01.2018
10:12:55
Тут напрягает что строчек много получается, каждый отдельный тип алиасить. В одну строчку было бы лучше.

Klei
05.01.2018
10:16:05
А не прокатит переназначить в виде type conflictName = good.old.module.conflictName // без компа под рукой

Страница 445 из 772