Polyglot — експерименти з C# та F# в одному ноутбуці

pic

Під час нашої програмістської діяльності ми часто проводимо різні тести або експерименти з кодом. Коли ми працюємо з мовами .NET, такими як C# або F#, стандартним способом є створення консольного додатку та експерименти з кодом. Тепер у нас є більш надійний і всебічний інструмент. Це також зручніше і значно швидше. І це доповнення до Visual Studio Code під назвою Polyglot. Polyglot працює подібно до Jupyter notebooks.

pic

Ось кілька прикладів, як працювати з кодом .NET в ноутбуці Polyglot. Ми використовуємо дві мови .NET: C# та F# в одному ноутбуці.

Ось частина вигляду ноутбука.

pic

Щоб вказати, що ми хочемо використовувати певну мову, ми використовуємо магічну команду.

#!fsharp  
let number01 = 15  

#!csharp  
int number02 = 25;

Щоб встановити пакет.

#r "nuget: Microsoft.Data.SqlClient"

Код кожною мовою пишеться звичайним чином.

#!csharp  
Console.WriteLine(numbers03)

Цікавою функцією є спільне використання змінних між цими двома мовами. Припустимо, що ми хочемо створити функцію на C# і використати змінну, створену в F#.

#!set --value @fsharp:number01 --name number01  
#!csharp  

int SumFunction(int a, int b){  
 return a + b;  
}  

int numbers01 = SumFunction(Convert.ToInt32(number01), number02);  
Console.WriteLine(numbers01)

І в зворотному напрямку.

#!fsharp  
#!set --value @csharp:number02 --name number02  
#!set --value @csharp:numbers01 --name numbers01  

type ClassA(n01:int, n02:int) =  
 member this.n01 = n01  
 member this.n02 = n02  

 member this.numbersAdd =  
 this.n01 + this.n02  

let classA = ClassA(number01, Convert.ToInt32(number02))  

let numbers02 = classA.numbersAdd + Convert.ToInt32(numbers01)

Зручний спосіб перегляду всіх змінних:

pic

Ви можете самі ознайомитись з цим ноутбуком і зробити свої власні експерименти: GitHub

Перекладено з: Polyglot — C# and F# experiments in one notebook

Leave a Reply

Your email address will not be published. Required fields are marked *