F#
-
F# Async TCP Server Simple ExampleF# 2021. 1. 2. 18:59
[Original Source] http://www.fssnip.net/1E/title/Async-TCP-Server [Modifed] .net core에서 컴파일되도록 일부 수정한 코드입니다. (Option type 적용등) 작동 확인 : 2021-01-02 open System open System.Net open System.Net.Sockets open System.Threading type Socket with member socket.AsyncAccept() = Async.FromBeginEnd(socket.BeginAccept, socket.EndAccept) member socket.AsyncReceive(buffer: byte [], ?offset, ?count) = let offset ..
-
F# 에서 Grpc 사용하기F# 2020. 2. 10. 22:34
F#에서 GRPC를 사용하는 방법에 대해서 알아보자. (IDE에서 다음 작업을 진행하는 경우 더 편리하게 진행가능하다.) 1. 테스트용 솔루션 생성 // dotnet grpc tool 을 전역으로 설치 $dotnet tool install -g dotnet-grpc // 솔루션 생성 $ dotnet new sln -o GrpcTest // 솔루션 디렉토리 진입 $ cd ./GrpcTest 2. F# Server 프로젝트 생성 // 서버 콘솔 프로젝트 생성 $ dotnet new console -lang f# -o Server // 솔루션에 추가 $ dotnet sln add ./Server/Server.fsproj 3. F# Client 프로젝트 생성 // F# 클라이언트 프로젝트 생성 $ dotnet ..
-
visual studio code 에서 F# 개발(컴파일 및 디버깅)하기F# 2019. 2. 7. 22:05
Visual studio code 에서 F# 언어로 개발(컴파일 및 디버깅)이 가능하도록 환경을 설정하는 방법을 알아본다.이 문서에서는 .NET core 버젼 설치를 기준으로 한다. (.Net framwork 기반 설치도 크게 다르지 않다.) 1. Visual studio code 최신 버전 설치https://code.visualstudio.com/download 2. NetCore 2.2 버전 설치https://dotnet.microsoft.com/download 3. Visual studio 2017용 Build tools 설치https://visualstudio.microsoft.com/ko/downloads/?utm_medium=microsoft&utm_source=docs.microsoft.co..
-
Fsharp.Data (F# Data) Json parsing exampleF# 2016. 10. 20. 00:50
#1. set of properties { "a" : "apple", "b" : "banana", "c" : "cocoa" } open FSharp.Data open FSharp.Data.JsonExtensions [] let main argv = let json_txt= """{"a":"apple","b":"banana","c":"cocoa"}""" JsonValue.Parse(json_txt).Properties |> Array.iter(fun (key,value) -> printfn "%s:%s" key (value.AsString())) 0 // return an integer exit code #2. array of values ["apple","banana","cocoa"] open FShar..
-
F# 타이머 예제F# 2016. 3. 11. 20:57
#1. 매 1초마다 한번씩 함수를 실행하는 예제 (auto reset mode)open System let OnTrigger() = Console.WriteLine("timer") [] let main argv = let event = new System.Threading.AutoResetEvent(true) let timer = new System.Timers.Timer(1000.0) timer.Elapsed.Add(fun _ -> OnTrigger()) timer.Start() while(true) do let v = Console.ReadLine() ignore printfn "%A" argv 0 // 정수 종료 코드 반환 #2. 매 1초마다 한번씩 함수를 실행하는 예제 (manual reset m..
-
F# Async Task 예제F# 2016. 3. 11. 19:14
이번에는 Async task를 사용하는 예제이다.Thread를 사용한 구문 보다는 이 방법을 추천한다. open Systemopen System.IOopen System.Threadingopen System.Threading.Tasks let task1 = async { while(true) do Console.WriteLine("task1"); Thread.Sleep(1000) } let task2 = async { while(true) do Console.WriteLine("task2") Thread.Sleep(1000) } []let main argv = let task1 = Async.StartAsTask(task1) let task2 = Async.StartAsTask(task2) //Async..