헤스켈 프로젝트 설정 18 Apr 2020 들어가지 전에 이전 헤스켈 설치 포스트를 따라 제대로 설정했다면 해당 포스트에서 모든 기능이 제대로 동작할 것이다. 프로젝트 생성 Haskell 프로젝트는 stack new <project-name>을 사용에 생성할 수 있다. stack new gs-haskell 프로젝트 설정 프로젝트를 생성 했다고 바로 쓸 수 있는것이 아니라 필요한 라이브러리를 땡겨오는 설정이 필요하다. cd gs-haskell stack setup Stack has not been tested with GHC versions above 8.6, and using 8.8.3, this may fail Preparing to install GHC to an isolated location. ...
헤스켈 설치 18 Apr 2020 들어가기 전에… 헤스켈을 사용하는 여러가지 방법이 있겠지만 필자는 VS CODE를 선호하고 따라서 VS CODE에서 헤스켈 개발의 편의성을 높이는 방법으로 설명할 것이다. 헤스켈 설치 Stack 설치 GHC(The Glasgow Haskell Compiler)를 바로 설치하는 방법도 있지만 Stack을 사용해서 설치한다. Stack은 헤스켈 프로젝트 빌드와 의존성 관리를 도와주는 도구이다. 다음과 같이 설치할 수 있다. brew install haskell-stack Stack 설치 확인은 다음과 같이 할 수 있다. stack --version Version 2.1.3, Git revision 0fa51b9925decd937e4a993ad90cb686f88fa282 (7739 commits) x86_64 hpack-0. ...
Paket 의존성 매니저 28 Mar 2020 닷넷 개발자라면 Nuget을 모를리가 없다. 심지어 Nuget 웹사이트에 나오지만 Nuget이외의 다른 의존성 관리자가 있다는 사실조차 모르는 사람이 많다😱😱😱. Paket을 좋아하는 이유는 딱 한가지다. 멀티 프로젝트 구성에서 의존성을 여러번 설치 하지 않아도 된다는 것이다🎉👏. 설치 Paket을 global로 설치하는 방법이 있고 프로젝트마다 설치하는 방법이 있다. 필자는 프로젝트마다 설치는 귀찮아서 global툴로 설치를 선호한다. dotnet tool install -g paket 다음 명령어로 Packet 설치를 확인할 수 있다. > dotnet tool list -g Package Id Version Commands ------------------------------------------------------------------------- . ...
Why I Love Fsharp 28 Mar 2020 1. 행사 코드가 적다 보통 C#이나 Java에서 기회가 되는데로 최대한 불변 객체를 생성하려고 노력한다. 불변 객체를 C#에서 생성하는 방법은 아래와 같다. class Person { public string FirstName { get; } public string LastName { get; } public Person(string firstName, string lastName) { FirstName = firstName; LastName = lastName; } } 자바에 비해서는 그래도 행사코드가 적은 C#이지만 F#에 비하면 그래도 너무 많다. type Person = { FirstName: string LastName: string } 이는 내가 자바를 별로 안좋아 하고 코틀린을 좋아하는 이유 중 하나이다. ...
VS Code - F# Ionide 플러그인 28 Mar 2020 F#을 Visual Studio나 Rider IDE에서 사용하는 것도 좋지만 VS Code도 IDE 만큼이나 좋은 환경을 제공한다. Ionide는 F#을 개발할 때 개발자에게 도움을 주는 자동완성, 정의로 이동, 툴팁, 이름 변경, 리펠토링과 퀵픽스 제안 등을 제공한다. 공식 웹사이트는 https://ionide.io/ 이며 공식 사이트를 방문해 보면 Ionide는 VS Code와 Vim을 지원한다는 것을 알 수 있다. VS Code에서 Ionide 설치는 매우 간단하다. VS Code의 Extesions 뷰(Command/Cotrol+Shift+X)로 이동해서 Ionide를 검색한 다음 install 버튼을 클릭하자 (필자는 이미 설치해서 install 버튼이 보이지 않는다. ...
.Net core SDK 설치 on Mac 28 Mar 2020 F#을 macOS에서 사용하기 위해서는 .Net Core SDK를 다운로드 받아야한다. 다음 링크에서 Downlload .NET Core SDK 버튼을 클릭하고 dotnet-sdk-{version}-osx64.pkg 파일을 다운로드 하자. https://dotnet.microsoft.com/download 다운로드 한 패키지 파일을 실행하면 다음과 같은 화면을 볼 수 있다. 계속 countinue 버튼를 클릭해서 설치를 완료하자. 설치가 완료되었으면 콘솔에서 다음을 실행해서 바로 설치되었는지 확인하자. dotnet --list-sdks 3.1.200 [/usr/local/share/dotnet/sdk]
블로그 이전 27 Mar 2020 Wordpress.com에 작성했던 자료를 이전하고 있습니다. 이전 중에 오래된 자료 중 일부는 모던하게 업데이트를 진행 중입니다 😄
안녕 FP 14 Oct 2017 서문 함수형 프로그래밍(이하 FP)을 처음 접한 때는 한국의 데브멘토라는 사이트에서 F#에 관한 글이 올라오면서 약간의 분란(?)이 일었던 시기이다. 가물가물하긴 하지만 F# 버전이 아마 1.0도 되지 않았던 것으로 기억한다. F#을 조금 공부하고 나서는 ‘어렵다’와 ‘내가 아는 프로그래밍 언어와는 꽤 다르다’라는 두가지 생각이 동시에 들었었다. 이후 꽤 오랜시간 별 관심이 없다가 2008년 무렵 Jon Skeet이 컨퍼런스에서 FP에 관해 이야기 함으로써 F#에 대한 기억이 되살아 났다. 2010년 Tomas Petricek과 Jon Skeet의 『Real-World Functional Programming』이 출간되고 이 책을 호주 책방에 주문해서 거의 3달 만에 받았던 기억이 난다. ...
F# active patterns 5 Oct 2007 F# 패턴 매칭에서 엑티브 패턴(active patterns)이라 불리는 좀 특별한 형태가 존재하는데 처음 공부할 때 대충 공부해서 오늘 날잡고 좀 들여다 보면서 정리해보려고 한다. 일단 “““제대로””” 공부하기전에 전에 대충 공부하고 이해한 엑티브 패턴은 동적으로 패턴을 찾는거라고 이해했었는데 맞는지 한번 자세히 들여다 보자. 일단 F# 뉴스레터에서 추천했던 다음 동영상부터 감상을 하자 (아래 이미지 클릭시 재생) 해당 동영상의 소스와 프리젠테이션은 아래 링크에 공개되어있다 https://github.com/pblasucci/DeepDive_ActivePatterns 동영상 요약 F#의 패턴 매칭에는 한계(limitation)가 있다. F#이 CLR위에서 동작하고 CLR을 만들때는 Functional language에 대한 염두가 없었기 때문이다. ...