본문 바로가기

전체

(363)
코틀린으로 살펴보는 Y 컴비네이터 (Feat Fixed Point) - Y-Combinator를 사용한 함수 고정점 소개  과 [Kotlin Pearls 8] Recursion, Tail Recursion and Y Combinator | by Uberto Barbini | ProAndroidDev 의 Y Combinator 부분 간단한 요약임 재귀함수간단한 재귀함수를 짜보자// 재귀 함수를 짜보자fun factorial (n: Int): Int { if (n == 0) return 1 return n * factorial(n - 1)}짜잔!재귀는 자기 자신을 호출하므로, factorial 내부에서 factorial 을 호출하면 된다. 람다로 짜보자val factorialLambda: (Int) -> Int = { n -> if (n == 0) 1 els..
Clojure 의 매크로 시스템의 튜링완전 (애매한) 증명 feat SKI 우리가 하는 일반적 (Generic)  프로그래밍 언어는 튜링완전하다.즉 튜링완전 관점에서 완전히 동치이고, 튜링완전한 언어 A 에서 가능한 일은 이론적으로 B 에서도 가능하다. Scala / Haskel / F# .... TypeScript 등 언어의 "타입 시스템" 구조 자체가 튜링 완전하며, Type System 만을 이용해서 모든 기능을 이론적으로 구현 할 수 있다. - 타입스크립트 타입 레벨 프로그래밍 (velog.io) 참고타입 레벨 프로그래밍이라고도 하는데, 정적타입언어에서 안전한 프로그래밍을 만들기 위하여 종종 쓰는 패턴이다 암튼, 튜링완전 조건은 다음과 같은데 (나무위키 피셜)- 조건 분기문이 있다. if (...) then goto (...). 또는 branch if zero 등. fo..
[DB] 현재는 모든 과거의 필연적인 산물이다 - Bitemporal 을 곁들인 타임머신 현재는 모든 과거의 필연적인 산물이다  Block Chain은 일종의 불변 + 분산 데이터베이스로 간주될 수 있다.이러한 불변성이 적용된 데이터베이스 시스템도 있는데, 이를 불변(immutable) 데이터베이스라고 한다.Datomic을 예로 들 수 있다.Datomic - Overview   Datomic - OverviewNever Forget Critical insights come from knowing the full story of your data, not just the most recent state. Datomic stores a record of immutable facts, which gives your applications strong consistency combined with ..
Hibernate Query Plan 으로 인한 OOM 방지 한 2년전에 발생한 문제인데, Query Plan  QueryPlanCache (Hibernate JavaDocs) (jboss.org) QueryPlanCache (Hibernate JavaDocs)Obtain the parameter metadata for given native-sql query. for native-sql queries, the param metadata is determined outside any relation to a query plan, because query plan creation and/or retrieval for a native-sql query depends on all of the return typesdocs.jboss.org 간단히 말하면SQL -> 쿼리..
안전모를 쓰고 Base Chain 을 여행하는 나그네를 위한 쉼터 , 쉼표 [Comma] 쉼표 [Comma], 그 아름다움은 쉼표라는 이름 그 자체에서 느껴진다. 그 중요성은 이루 말할 수 없다. 동방의 작은 나라의 개발자가 찾은 쉼표의 가치는 음속을 넘어 광속의 속도로 전 세계 모든 개발자들과 공유되리라. 개발자로서의 여정은 때로는 고독하고 때로는 흥미진진하다. 그 여정에서 쉼표 같은 순간은 정말 소중하다. 최근 나에게는 그런 쉼표 같은 순간이 있었다. 바로 BASE-CHAIN 프로젝트의 공식 컨트리뷰터로서 첫 발을 내딛게 된 것이다. 개발하면서 혼자 나는 누구? "BASE-CHAIN OFFICIAL CONTRIBUTOR" 하면서 웃으니까 기분도 좋아지네. 이래서 자리가 사람을 만든다는말이 나온것 같다 ... Fix Typo in hardhat.md by Lee-Wo..
AppSync Subscription Data Field가 DB 에는 있지만, null 로 오는 경우 (Feat GraphQL) 그래프ql (AWS AppSync) 에서 에서 저장된 데이터를 실시간으로 땡겨오기 위하여 Subscription 을 사용 할 수 있는데띠용 분명히 DB 에는 데이터가 있는데, Subscription 하니까 특정 field 가 null 로 오는 경우가 발생..무엇이 문제인고 하니..Event fields - Real-time data with subscriptions - Building GraphQL APIs with AWS AppSync (graphql-on-aws-appsync-book.com)  AppSync only fills the subscription events with the fields that the mutation defined.  AppSync 는 (다른 그래프ql 은 몰?루) mu..
주술회전 대사로 프로그래밍을 해보자 Lee-WonJun/Jujutsu-Kaisen-lang: 주술회전 명대사 프로그래밍 언어 (github.com) GitHub - Lee-WonJun/Jujutsu-Kaisen-lang: 주술회전 명대사 프로그래밍 언어주술회전 명대사 프로그래밍 언어. Contribute to Lee-WonJun/Jujutsu-Kaisen-lang development by creating an account on GitHub.github.com 일전에 [LolChatLang] 롤챙 프로그래밍 언어를 만들어보자 (tistory.com) 에서 F# 으로 프로그래밍언어를 만들어 봤는데, 이때는 monadic parser 를 사용하지 않고 한땀 한땀 만들었다. 이번 설 연휴에 뭐라도 해볼까 하다가, monadic parser를 ..
부분함수 (Currying) 에서 Generic 유지하기 in Kotlin / F# 함수형 패러다임에서는 OOP Style 로 변수들을 모아두는 대신, closure 캡쳐식으로 유지하는데, 보통 Currying 이 자동으로 적용되서, 부분함수를 쉽게 만들수 있다. let add (a: int) (b: int) = a + b let addOne = add 1 let result = addOne 2 parameter 2개를 받는 함수 add 에 파라미터를 한개만 넣으면, 자동으로 해당 값은 캡쳐되고 파라미터 한개를 받는 함수 (부분적 으로 적용된 함수 -> 즉 부분 함수 PartialFunction이다 ) 그리고 이렇게 걍 파라미터를 들 적으면 알아서 부분함수가 되는게 Currying 이라고 한다. Kotlin 은 어디까지나 기본 철학은 OOP 위에 쌓여있는 언어이기 때문에 Currying..