전체 (363) 썸네일형 리스트형 [C#] Properties to Dictionary static Dictionary ToDictionary(object obj) { return obj?.GetType() ?.GetProperties(BindingFlags.Instance | BindingFlags.Public) ?.ToDictionary(prop => prop.Name, prop => prop.GetValue(obj)); } 프로퍼티를 key-value 쌍인 Dictionary 로 바꾸기 위해서 리플렉션과 LINQ를 사용한다. [Clojure] Clojure 와 Haskell 의 DSL 비교 https://www.quora.com/Which-language-is-better-for-creating-DSLs-Clojure-or-Haskell Which language is better for creating DSLs, Clojure or Haskell? Answer (1 of 4): While I don’t have too much experience with Clojure, I believe that my experience with Scheme could shed some light on the question. Compared to other languages that I have worked with, Scheme has been exceptional in that, instead of.. [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# 에서는 루프 하나에 한.. [Clojure] conj 는 왜 list, vector에서 다르게 동작하는가. Clojure 에서 conj 를 쓰는경우 list의 경우 앞에, vector의경우 뒤에 삽입된다. 왜 그런가 궁금했는데conj 의 경우 해당 데이터타입에 맞는 최적(가장 빠른)의 방법으로 결합(conjoin)된다고 한다.따라서 리스트의 경우 싱글 링크드 리스트 이기 때문에 가장 앞에 삽입되는것이 가장 빠르고백터는 일종의 어레이이기때문에 뒤에 삽입되는것이 더 빠르다. 관련 링크.https://medium.com/@greg_63957/conj-cons-concat-oh-my-1398a2981eab Conj, Cons, Concat? Oh my!Lists and collections are the basis of Clojure. But, as a Clojure noob, I was constantly get.. [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 장점 처음에 모든것을 초기화하는데 장시간 소요되는것으르 막음. 무한한 리스트를 생성할수있다. 단점 필요할때 .. 이전 1 ··· 16 17 18 19 20 21 22 ··· 46 다음