본문 바로가기

프로그래밍 기술 노트

(88)
[Functional Study] ConcentrationGame https://github.com/Lee-WonJun/FP-Seminar/blob/master/Tutorial/ConcentrationGame/clojure/Program-leewonjun.clj Lee-WonJun/FP-Seminar Contribute to Lee-WonJun/FP-Seminar development by creating an account on GitHub. github.com 스터디용으로 신경쇠약 게임을 clojure 으로 구현해보았다. 기본적으로 F#으로 짠걸 베이스로 옮기면서 이것저것 수정했는데 일단 UI보다는 로직적인 부분을 구현했는데 생각해보니 F#으로 짤때 Game-loop를 도는 부분을 좀 이상하게 짠것 같아서 해당 부분의 로직을 변경하였다. F# 에서는 루프 하나에 한..
[Functional Study] ConcentrationGame https://github.com/Lee-WonJun/FP-Seminar/blob/master/Tutorial/ConcentrationGame/F%23/Program-leewonjun.fs Lee-WonJun/FP-Seminar Contribute to Lee-WonJun/FP-Seminar development by creating an account on GitHub. github.com 스터디용으로 신경쇠약 게임을 F# 으로 구현해보았다. 예외처리는 안되어있고.. 뭔가 FP 스럽지 않게 짠거같기도한데.. 흠
Lazy 한 시퀀스에서의 부수효과가 있는 함수 사용시 주의 포커 게임을 제작하다가 다음과 같은 코드를 사용했다. let Random = System.Random() type Suit = Spade | Dia | Heart | Club type Card = {suit:Suit; number:int} type Concentration = Card * bool * int let Deck = seq { for s in [Spade;Dia;Heart;Club] do for y in 1..12 -> ({suit=s;number=y},true) } let Shuffled = Seq.sortBy (fun x -> Random.Next()) Deck let GameDeck = Seq.mapi (fun i (c,b) -> Concentration(c,b,i)) Shuffled D..
[Functional Study] 7. Pattern Matching & Destructuring https://github.com/dream365/FP-Seminar/blob/master/Concept/7.%20Pattern%20Matching%20%26%20Desctuction/Concept%20and%20Example.md 함수형언어의 누가봐도 장점인 패턴매칭과 보다 효율적인 패턴매칭을위한 Destructuring 에 관한 설명 C++ / C# / F# / clojure 에 관한 예제 및 설명 Pattern Matching 대상이 특정한 패턴을 가지고 있는가를 확인한다. 기존의 if문 타입 체크나 switch-case 문의 발전형식이다. Destructuring 구조를 분해하는것. 예를 들어 튜플에서 (a,b) = ("key","value") 면 a와 b에 각각 "key", "value" 가 알..
[Functional Study] 5. Lazy https://github.com/dream365/FP-Seminar/blob/master/Concept/5.%20Lazy%20Loading/Concept%20and%20Example.md 필요(요구)할떄 결과를 계산하는 방식인 Lazy 에 관한 정리 필요할때 객체를 생성하면 Lazy Initialization 필요할때 식을 평가하면 Lazy Evaluation C++ / C# / F# / clojure 에 관한 간단한 설명 및 예시 설명 Lazy 필요(요구)할떄 결과를 계산하는 방식. 필요할때 객체를 생성하면 Lazy Initialization 필요할때 식을 평가하면 Lazy Evaluation 장점 처음에 모든것을 초기화하는데 장시간 소요되는것으르 막음. 무한한 리스트를 생성할수있다. 단점 필요할때 ..
[Functional Study] 3. Currying https://github.com/dream365/FP-Seminar/blob/master/Concept/3.%20Currying/Concept%20and%20Example.md Functional Study 중 챕터3인 Currying을 간단하게 정리 챕터2, 5, 7의 경우 선배분이 정리하기로 해서 정리해서 올라가면 포스팅예정. 나 : (C++) / C# / F# / Clojure 의 예제코드를 담당하고 선배가 Java / Kotlin / Scala 의 예제 코드를 담당했는데 내가 담당한 언어에서 사실상 F# 만 진짜 커링이라... 예제코드는 비슷하게 동작하는 closure 로 구현하였음. Currying 하나 이상의 파라미터를 받는 함수에서 몇몇 파라미터를 미리 지정하여 새로운 함수로써 사용하는것...
[Functional Study] 1. Lambda, map, reduce, filter https://github.com/dream365/FP-Seminar/blob/master/Concept/1.%20Lambda%20%26%20Map%20%26%20Reduce%20%26%20Filter/Concept%20and%20Example.md Functional Study 진행중. 1,3,5,7챕터를 본인이 정리하기로 하였다. 해당 링크는 Lambda, map, reduce, filter 에 관하여 정리한 글 lambda 이름없는 함수, 무명함수, 익명함수 등으로 변역되며 람다대수에 기초함. FP 에서는 함수를 1급 시민으로 취급하여 파라미터로 넘기거나 함수자체를 반환 할 수 있다. 이때 파라미터로 넘길 함수를 따로 만들지 않고 그순간에만 사용하거나 간단한 식인경우 함수 본체만 넘기면 편한다. 장..
시작 타일의 이미지 및 컬러 변경 시작 타일을 보면 이런식으로 백그라운드 컬러가 정해져있는데 기본적으로 윈도우의 설정으로 정한 컬러를 따른다. 근데 visual studio 나 크롬 마냥 백그라운드가 다른컬러가 있는데 다른 프로그램도 이런식으로 변경하고 싶다. 해당 설정은 각 프로그램의 VisualElementsManifest 파일에 지정되어있다. 요런식.. 여기서 설정을 바꾸고 다시 적용시키면 되는데 하나하나 하는것은 귀찮기 때문에.. https://github.com/Jonno12345/TileIconifier Jonno12345/TileIconifier Creates tiles for most Windows 8.1 and 10 start menu icons - Jonno12345/TileIconifier github.com 해당 프..