- Why Functional Programming Matters
- Devoxx Poland 2016 - Ted Neward - Why Functional Programming Matters
- Why is Learning Functional Programming So Damned Hard?
- What Functional Programming Is + Why It Makes You Better
- Why Isn't Functional Programming the Norm? – Richard Feldman
- 결론; 대세가 될 것이나 시간이 필요
- 이유; OOP가 그 자체 고유 특성의 우수성때문에 대세가 된 것이 아니기 때문
- 예를 들어 OOP 고유 특성중 하나인 상속은 OOP에서조차 기피 대상, 대신 compostion 사용. composition은 FP에도 존재
- 캡슐화 = 정보 은닉 개념 = 모듈화 개념의 다른 버전
- 그럼 왜 OOP 언어들이 대세인가
- Killer App; Ruby on Rails나 Wordpress/Drupal의 PHP
- 거대 업체 지원; Apple(ObjC, Swift), Google(Go), MS(C#)
- 시스템상 지원; OS/Embedded(C/C++), 브라우저(Javascript)
- 이런 모든 것의 지원을 받는 경우; Java(Sun)
- 꾸준한 업데이트; Python
- 그러나 이들 언어에서도조차도 함수형 프로그래밍 스타일이 점점 유행
- Why do we use OOP over functional code We use less code
- Why I use typed functional programming
- How Do I Learn Some Functional Programming?
- Functional Patterns in Domain Driven Design applied to Financial Models
- Functional Programming Doesn't Work (and what to do about it)
- Genuinely Functional User Interfaces
- The Expression Problem and Tables
- Imperative Functional Programming
- The algebra (and calculus!) of algebraic data types
- Covariance and Contravariance: a fresh look at an old issue
- Ask HN: Which functional programming language is the popular enterprise choice?
- FUNCTIONAL PROGRAMMING IN A DYSFUNCTIONAL WORLD
- Functional programming, APL and Unix pipes
- The Essence of FRP
- Functional Programming in the Real World
- FBP inspired data flow syntax: The missing piece for the success of functional programming?
- FUNCTIONAL PROGRAMMING IN A DYSFUNCTIONAL WORLD
- From Imperative to Pure-Functional and Back Again: Monads vs. Scoped Continuations
- Purely Functional Performance
- Hello, declarative world
- Ten reasons not to use a statically typed functional programming language
- Functional Programming Hurdle: Uninteresting programs
- "Controlling Time and Space: understanding the many formulations of FRP" by Evan Czaplicki
- Elm: Concurrent FRP for Functional GUIs
- Purely Functional Data Structures
- Seemingly impossible functional programs
- 케빈 TV
- What Is Functional Programming?
- Which Programming Languages Are Functional?
- 함수형 프로그래밍(Functional Programming) 기초
- 함수형 프로그래밍 두번째 이야기: 왜 함수형이라고 부를까?
- 번역 함수형 프로그래밍 세번째 이야기: 그럼 지금까지 해오던 것들을 다 바꾸어야 할까?
- 순수 함수와 정직한 설계
- A prettier printer
- (번역) A prettier printer — 필립 와들러
- 함수형 프로그래밍
- OOP는 사라지지 않을 거 같다
- 하나의 thread에서의 속도는 C보다 빠를 수가 없다. 다만 race condition이 훨씬 적다, immutable이니까
- rust에 대한 흥미
- Can I do FP in my language?
- Just Enough Functional Programming
- 함수형 프로그래밍의 장점
- Non-deterministic
- Practical Functional Programming
- Solve Functional Programming | HackerRank
- midojeong.github.io/tags/#함수형
- Functional Programming For People Who Hate Math
- Pros and cons of functional programming
- Are idempotent functions the same as pure functions?
- Elements of Functional Programming map, flatMap, filter in Swift
- Functional Programming & Haskell - Computerphile
- What Is Functional Programming?
- So You Want to be a Functional Programmer
- 함수형 프로그래밍과 수학
- Referential Transparency — Programming Word of the Day
- Gain confidence with referential transparency
- Why are FP devs obsessed with Referential Transparency? - YouTube
- Functional 360 Archives haskell, scala, clojure, F#에 대한 주간 뉴스
- Discover the power of first class functions
- 함수란 무엇인가?
- The Knights of Functional Programming fight the Imperative Dragon
- 함수형 프로그래밍 정리
- 함수형 프로그래밍의 시대가 오고 있(지는 않)다
- 함수형 프로그래밍이 어려운 이유 - 사실은 함수형 프로그래밍이 더 쉽다
- "Haskell vs. F# vs. Scala - A High-Level Language Features and Parallelism Support Comparison"을 읽고
- So You Want to be a Functional Programmer (Part 1)
- A Glossary of Functional Programming
- 수학에서 기원한 프로그래밍 패러다임, 순수 함수
- Benefits of Functional Programming by Example
- Code Smell: Side Effects
- Thinking in Functions, Part I: The Input/Output pattern
- 프로그래머를 위한 논리학 - 0
- 프로그래머를 위한 논리학 - 1
- The Essence of Functional Programming
- The Functional Sandwich Principle
- GOTO 2018 • Functional Programming in 40 Minutes • Russ Olsen - YouTube
- The Object-Oriented vs. Functional Programming Language Evolution | by O'Reilly Media | oreillymedia | Sep, 2020 | Medium
- Why developers are falling in love with functional programming | by Rhea Moutafis | Towards Data Science
- 김진철의 How-to-Big Data | 빅데이터의 미래 (13) - CIO Korea
- 다시보는 커링 | overcurried
- The reality of functional programming - Developer Melange PODCAST - LispCast
- Legacy in Functional Programming PODCAST - LispCast
- 라인 백엔드 개발자의 함수형 프로그래밍 언어 실전 사용기 | 라인개발실록 - YouTube
- Immutability is not enough
- 실무에서 써먹는 불변성 | Popit
- Charles Scalfani, Author of Functional Programming Made Easier: A Step-by-Step Guide
- 다양한 함수의 정의와 표현
- How Functional Programming Can Make You A Better Developer - YouTube
- The Functional Programming Triad of Map, Filter and Fold
- FP is the new OOP - YouTube
- ‘액션-계산-데이터’ 관점으로 보는 함수형 프로그래밍 패러다임 | 요즘IT
- 함수형 프로그래밍 언어 3대장. (1) 세상 가장 우아한 코드를 만드는 Clojure, (2) 실무에… | by 김대현 | HappyProgrammer | Medium
- Persistent data structures in functional programming
- 함수형 자료구조 | kciter.so
- Functional programming is finally going mainstream
- TECH l 월간FP(Functional Programming) - YouTube clojure, ReScript
- 프론트엔드에서 함수형을 추구하면 안되는 걸까? - Slidev
- Deconstructing Functional Programming
- 함수형 프로그래밍 가이드
- 함수형 패러다임을 이용한 안전한 FFmpeg 서버 구현기 · Present
- Railway-Oriented Programming | kciter.so
- Do your Values align with FP Values? - YouTube
- Welcome to FP Illuminated
- 모닥불 | EP.2 함수형 프로그래밍, 프론트엔드 개발에 진짜 도움 될까?
- Functional Mumbo Jumbo - ADTs
- Algebraic Data Types in four languages
- What is an ADT (Algebraic Data types)?
- Algebraic Data Types and Data Modelling - EGYM Software Development
- The Simple Essence of Algebraic Subtyping: Principal Type Inference with Subtyping Made Easy | Lambda the Ultimate
- 스칼라 FP 관련 책들
- Book of monads by Alejandro Serrano Mena Leanpub PDF/iPad/Kindle
- Category Theory for Programmers: The Preface
- Grokking Simplicity
- From Objects to Functions • Uberto Barbini & Duncan McGregor • GOTO 2024 - YouTube
- Functional Programming for Mortals
- Functional and Reactive Domain Modeling
- Implementing functional languages: a tutorial
- An Outsider's Guide to Statically Typed Functional Programming by Brian Marick PDF/iPad/Kindle
- Category Theory from the Universe Up
- 2015-09 Category Theory in Functional Programming
- Greg Pfeil - Category-parametric Programming
- Applied Category Theory - The Emerging Science of Compositionality
- Applied Category Theory • Ken Scambler • YOW! 2019 - YouTube
- What’s in a Name? The ABC’s of Category Theory and Functional Programming
- Data Juggling - Part 5 - Curry-Howard-Lambek Correspondence
- Category Theory - Chapter 1: Basic Constructions
- Wolfram Physics Project: Relations to Category Theory
- 스테판 울프럼이 온라인 세션으로 다른 물리학자들과 진행한 "Relations to Category Theory"
- 4시간 가까이 이론 설명 및 토론 + 매스매티카로 예제 구현, 어려움
- Daniel Beskin - Category Theory as a Tool for Thought - YouTube
- 번역 프로그래머를 위한 카테고리 이론 - 카테고리: 합성의 본질 | Evans Library
- 번역 프로그래머를 위한 카테고리 이론 - 0. 서문 | Evans Library
- 번역 프로그래머를 위한 카테고리 이론 - 1. 카테고리: 합성의 본질 | Evans Library
- 번역 프로그래머를 위한 카테고리 이론 - 2. 타입과 함수 | Evans Library
- 번역 프로그래머를 위한 카테고리 이론 - 3. 다양한 카테고리들 | Evans Library
- 번역 프로그래머를 위한 카테고리 이론 - 4. 크라이슬리 카테고리 | Evans Library
- 번역 프로그래머를 위한 카테고리 이론 - 5. 곱과 합 | Evans Library
- 번역 프로그래머를 위한 카테고리 이론 - 6. 단순한 대수적 타입 | Evans Library
- 번역 프로그래머를 위한 카테고리 이론 - 7. 펑터 | Evans Library
- 번역 프로그래머를 위한 카테고리 이론 - 8. 펑터의 특성 | Evans Library
- 번역 프로그래머를 위한 카테고리 이론 - 9. 함수 타입 | Evans Library
- 번역 프로그래머를 위한 카테고리 이론 - 10. 자연 변환 | Evans Library
- practice - 함수형 프로그래밍 언어(클로저, 스칼라, 하스켈) 실무 적용 어드벤처
- Lambda World
- Functional Programming with Effects by Rob Norris
- "Outperforming Imperative with Pure Functional Languages" by Richard Feldman - YouTube
- Functional Programming for Pragmatists • Richard Feldman • GOTO 2021 - YouTube
- Why Functional Programming Matters • John Hughes • YOW! 2017 - YouTube
- The Effect Of Uncapturable - Oleg Nizhnik, Scala Stockholm Spring Meetup April 2024 Part 1 - YouTube
- All I needed for FP I learned in High School Algebra - Eric Normand
- Functional programming, meet OOP - The Startup - Medium
- Clojure - Functional Programming for the JVM
- Functional-navigational programming in Clojure(Script) with Specter
- Learn Functional Programming with Clojure
- Functional programming in Clojure
- Modern functional programming with Clojure - YouTube
- Functional Programming in the Cloud: Simpler Application Development Datomic Cloud
- Purely Functional IO in Clojure
- Functional Programming
- This is why people say that in functional programming the order of execution doesn’t matter - Learning Resources - ClojureVerse
- Functional Programming: Rapid Prototyping and Fast Delivery with Clojure - YouTube
- Once you go functional, you can never go back
- Functional Programming in C++
- [Ndc17 ppt fp_in_modern_c++(https://www.slideshare.net/isaacjeon/ndc17-ppt-fpinmodernc)
- Monads in C++ 번역
- Gamasutra - In-depth: Functional programming in C++
- Representable Functors
- Functors and Category Theory Introductory
- Functor, Applicative, and Why
- Generalizing functions with Profunctors
- Handling Errors with Profunctor Optics - Using Optical Proxies to Short-circuit and Retry APIs
- 어떻게 하면 안전하게 함수를 합성할 수 있을까?
- Understanding Functor and Monad With a Bag of Peanuts
- Functors, Applicatives, And Monads In Pictures
- Nicolas Rinaudo - Function reuse is just wishful thinking - YouTube
- Intro to Higher Order Functions
- Higher-Order Function 이란 무엇인가
- Higher-Order Function 이란 무엇인가
- Template Method rocks but Higher Order Function can do the trick
- Alice And The Return To The World Of Pods And Higher-Order Functions by Roksolana Diachuk - YouTube
- OOP classes vs Higher-order Functions (HOFs) - Alexandru Nedelcu OOP class vs. final OOP class vs. HOF
- Functional Programming with Java 8
- Functional Reactive Programming in Java
- 함수형 프로그래밍의 예외처리
- Functional Programming Patterns with Java8 with Victor Rentea
- Mixed Paradigms: The Method to Madness. Venkat Subramaniam, Agile developer, Inc
- Dysfunctional programming in Java
- Java 8 transforming your thinking from OOP to FP
- How Java & Scala are Imitating Functional Languages • Maurice Naftalin & José Paumard • GOTO 2019 - YouTube
- VΛVΓ (Vavr, formerly called Javaslang) is a non-commercial, non-profit object-functional library that runs with Java 8+. It aims to reduce the lines of code and increase code quality
- JS 제너레이터와 함수형 프로그래밍
- 함수형JS
- 함수형 프로그래밍이 뭔가요?
- Javascript and Functional Programming: An Introduction
- STRAIGHTFORWARD (LIVE) FUNCTIONAL JAVASCRIPT: BUILDING THE YOME WIDGET
- Functional programming: Monads made clear - in javascript
- Stateful Monads in JavaScript
- Functional Programming in Javascript
- Professor Frisby Introduces Composable Functional JavaScript
- Javascript and Functional Programming: An Introduction
- Functional-Light JavaScript
- 함수형 프로그래밍
- Handle JavaScript data structures with map/reduce
- Function decorators: Transforming callbacks into promises and back again
- Functional JavaScript: Function Decorators Part 2 #JavaScript
- Two Years of Functional Programming in JavaScript: Lessons Learned
- An Introduction to Functional Programming Style in JavaScript
- Understanding Higher-Order Functions in JavaScript
- Understanding Functional Programming with Javascript
- Transducers: Efficient Data Processing Pipelines in JavaScript
- reduce에 Promise 더하기
- Simplify your JavaScript – Use .map(), .reduce(), and .filter()
- How to simplify your codebase with map(), reduce(), and filter() in JavaScript
- 5 Use Cases for reduce() in JavaScript | by wathsala danthasinghe | JavaScript In Plain English | Jul, 2020 | Medium
- (Functional) OOP With Message Passing
- NAVER 테크톡 - 함수형 자바스크립트와 동시성 프로그래밍
- Anjana Vakil: Learning Functional Programming with JavaScript - JSUnconf
- High-performance array transformations - This simple technique let’s you compose array
map
s andfilter
s in a nice and performant way - How to write your own map, filter and reduce functions in JavaScript
- Functional Programming Principles in Javascript
- A practical guide to writing more functional JavaScript
- Make your code easier to read with Functional Programming
- TypeScript with React + Redux/Immutable.js 빠르게 배우기
- TDD기반 React,Redux,Immutable 시작하기 (1)
- Functional Programming Patterns: A Cookbook
- Composing Software: An Introduction
- A Quick Introduction to Functional Javascript
- Can You Avoid Functional Programming as a Policy?
- The Universal Function Thoughts on JavaScript, Functions and Functional Programming
- What Is a Pure Function in JavaScript?
- Higher-order functions: what they are, and a React example
- Higher Order Functions (Composing Software)
- JavaScript Immutability
- An introduction to Functional JavaScript
- 선언형으로 대체 가능한 문법들 정리
- 명령형 코드와 선언형 코드, 그리고 추상화 다시보기 | blog.hoseung.me
- 변하지 않는 상태를 유지하는 방법, 불변성(Immutable)
- Immutable JavaScript Objects and Arrays with a Natural API
- Learn JavaScript functional programming from Avengers
- 함수형 프로그래밍 정리
- Ultra small code using Functional Programming - Yoganathan Palaniswamy - Medium
- Brad Barrow's Blog | Javascript FlatMap Usage
- Framework Free - Functional HTML Rendering and State Management in Vanilla JS - Drew Warren - YouTube
- PostCSS, IE 그리고 함수형 프로그래밍. Glace CIC에서 담당하는 서비스인 스마트플레이스는 글로벌 진출을… | by 권세규 | 네이버 플레이스 개발 블로그 | Aug, 2022 | Medium
- Handling Optimistic Concurrency in Web Frontends | by Lakindu Hewawasam | Aug, 2022 | Bits and Pieces
- 함수형 코딩 스터디를 해봅시다!
- 함수형 elseIf 유틸리티 함수 제작기. 목차 사건의 계기 마구잡이 구현 조금 더 나아간 구현 그래서 뭐가… | by Jinwoo Kim | Aug, 2024 | Medium
- abcjs는 함수형 자바스크립트(functional javascript) 라이브러리입니다
- chunkify.js a functional API to unblock your JavaScript
- fantasy-land - Specification for interoperability of common algebraic structures in JavaScript
- fp-ts: Functional programming in TypeScript
- functional-programming: TypeScript 와 fp-ts 를 활용한 함수형 프로그래밍 소개
- immer - Create the next immutable state by mutating the current one
- 03 - Michel Weststrate - Immer Immutability made easy
- Immer: Immutability made easy
- Introducing Immer: Immutability the easy way
- 이머 (Immer)를 소개해: 불변성 쉽게 하자
- Immer.js 분석 1탄: COW, Proxy, Map 에 대하여
- The Rise of Immer in React (번역)
- 불변 객체와 immer | TOAST UI :: Make Your Web Delicious!
- 불변 객체와 immer : NHN Cloud Meetup
- immutable-js: Immutable persistent data collections for Javascript which increase efficiency and simplicity
- io-ts: Runtime type system for IO decoding/encoding
- Mastering Functional Programming with TypeScript: Unlocking the Power of Functional Programming for Robust Web Applications eBook : Deineka, Art: Kindle Store
- monocle-ts: Functional optics: a (partial) porting of Scala monocle
- persist - Specialized persistent collections in javascript -- immutable-js addons https://www.npmjs.com/package/persistence-js
- radash: Functional utility library - modern, simple, typed, powerful
- Ramda - A practical functional library for JavaScript programmers
- Lenses - Composable Getters and Setters for Functional Programming
- Lodash - A modern JavaScript utility library delivering modularity, performance & extras
- JavaScript SDK 성능개선 방법 – 압축과 최적화로 실행시간 단축하기
- More Lodash Features that are Available in Plain JavaScript
- Lodash의 대체재로서의 순수 자바스크립트 함수
- Are We Ready to Replace Lodash?. A look at JavaScript and RxJS functions… | by Yanique Andre | The Startup | Jul, 2020 | Medium
- Applying Git and Optimistic Concurrency Control principles to Data Oriented Programming
- Object spread와 lodash.cloneDepp 비교하기
- 람다, 익명 함수, 클로저
- 람다 표현식의 장점
- 람다와 친해지고 싶다면
- Lambdas are not functional programming
- An Alien Lambda Calculus • Xuanyi Chew • YOW! 2019 - YouTube
- VidiGo An Alien Lambda Calculus • Xuanyi Chew • YOW! 2019
- 컴퓨터 과학과 클로저 계산법
- 바란조 j. 처치라는 과학자는 그들의 움직임이 계산임을 발견하였고, 계산에는 에테르가 필수적임을 알아냄
- 클로저 계산법은 순수 람다 계산법과 유사하지만 기존 컴퓨팅 하위 구조에 의존하지 않고 계산을 설명 가능
- 클로저 계산법은 함수와 환경으로 구성되어 있으며, 모든 것이 함수로 구성되어 있다고 가정하는 것과 관련하여 10개의 축소 규칙 존재
- 클로저 계산법의 중요성
- 클로저 계산법은 이름이 축소 과정에서 안정적으로 유지되어 신뢰 가능
- 클로저 계산법은 메타 연산과 메타 이론을 제거하여 계산을 기술함으로써, 어떤 기반에도 의존하지 않는 자유로운 계산 가능
- 클로저 계산법은 순수 람다 계산법보다 훨씬 쉽게 기계화할 수 있어, 함수형 언어의 컴파일러 작성자에게 유용
- 클로저 계산법의 구현과 최적화
- 클로저 계산법은 재귀 프로그램을 정규 형태로 작성할 수 있게 하며, 이는 컴파일에 매우 유리
- 클로저 계산법은 간단한 구현과 빠른 실행 속도
- go, haskell, ocaml 등 다양한 언어로 구현된 클로저 계산법 인터프리터는 순수 람다 계산법인터프리터보다 5배 빠른 성능
- 클로저 계산법인터프리터는 haskell과 비교해도 30%의 속도를 달성하여 효율적임을 입증
- 클로저 계산법의 미래와 응용
- 클로저 계산법은 메타 이론이 없고 간단한 컴파일러를 통해 더 빠른 프로그램을 생성할 수 있다는 장점
- 저자는 agi(인공 일반 지능) 개발 목표와 관련하여 자신의 딥러닝 라이브러리가 클로저 칼큘러스 개념 위에 구축될 것
- 클로저 칼큘러스는 함수형 프로그래밍 언어의 기반이 되어야 한다고 주장하며, 타입 있는 람다 칼큘러스에 대한 약속도 함께 제시
- 컴퓨터 과학과 클로저 계산법
- 외계인 람다 미적분 - 쉬안이 츄 - YOW! 2019 | The fastest way to absorb knowledge | Lilys AI | Lilys AI
6. 인공신경망과 람다 계산의 관련성과 한계
- Markov 체인은 기억이 없다고 말하며, 계산은 안정 상태의 수정이라고 설명
- 안정 상태는 '기질(기저체)'에 보관되며, 다양한 종류의 기질이 존재 가능
- 람다 계산은 인공신경망에서 설명할 수 없지만, 실현 가능성 이론에 따르면 람다 계산은 자체를 실현할 수 없다는 것을 보여줌
- 람다 계산에는 기질 개념이 필요함을 강조하며, 계산적 기질은 실행 문맥을 추적해야 한다는 것을 강조
- 컴퓨터 전산 처리에는 반드시 콘텍스트가 필요
- 컴퓨터 전산 처리는 항상 콘텍스트 속에서 이뤄짐
- 'a'는 원래 프로그램의 자유변수로 어떠한 값을 대표 가능
- 문맥 없이 이 프로그램이 무엇을 하는지 이해할 수 없으며, 단순히 결과물을 반환하는 프로그램
- 자유변수는 맥락성의 메타 구성요소를 필요로 하는 자유도
- 컴퓨팅에 필요한 자유도는 단순히 계산을 수행할 콘텍스트를 가지는 것으로 해결
- 클로저 계산 화법 소개 및 튜링 완전성
- 컴퓨테이션에는 'Ether'가 필요하며, 이것은 맥락에 대한 유추의 유사와 동일. 편집기 작성자들은 컨텍스트를 가진 것에 대해 명확하게 이해
- '람다 x. a'로 'a'를 작성하는 것을 허용하지 않아 컴파일러 오류 유발. 더불어 Haskell이나 OCaml과 같은 함수형 언어 컴파일시 클로저 변환 단계 필요
- 환경을 힙에 유지할 수 있게 모든 것을 클로저로 번역하고 런타임에서 힙의 구멍을 채우는 것
- 클로저 계산 화법 소개는 클로저 계산 화법을 소개하기에 완벽한 선행임을 이중하며 튜링 완전성을 갖는 람다 계산의 아름다운 부분을 설명
- 퓨어 람다 계산과 마찬가지로 함수의 일관된 이론이며 즉각적인 진행과 보존이 일어나는 증명 존재
- 폐쇄 계산법의 위상과 추상화 과정
- 필의 작업장 이후에 출현, 폐쇄 계산법은 기존의 람다 계산법과 비교했을 때 계산을 설명할 때 기본적인 계산기 밑바닥에 의존하지 않고도 가능
- 이 때 사용되는 용어의 형태는 매우 간단하며 켄과 순수한 람다 계산법과 유사
- 변수 심볼 X가 일반적이며, 응용이 존재하면서 더 이상한 형태의 태그 적용 존재
- 문맥 확장 문법이 있어 이는 환경이자 명확한 치환을 나타내는 데 사용. 배울 점이 많은데 그 중 하나는 폐쇄라는 형태 하나만 사용 가능하다는 것
- 이제 순수 람다 계산법의 추상화 개념과 비교
- 클로저 캘큘러스의 기본 개요
- 클로저 캘큘러스에서는 람다와 클로저, 즉 함수와 환경을 생성. 환경은 시그마와 상자로 표시
- 여기서 본 모든 것은 추상적인 구문이며, 클로저 추상화의 구체적인 버전 확인
- 환경이 여러 명칭을 포함할 때는 어떻게 되는지 알아보고, 기본적으로 함수는 그대로이지만 클로저는 더 많은 명칭을 포획
- 람다 계산 논리와 클로저 계산 논리 간 비교
- 람다 계산 논리에는 1개부터 3개의 축약 규칙이 있으며 EA 확장이 규칙 집합의 일부로 간주되어야 하는지 여부에 따라 다를 수 있음
- 순수 람다 계산에는 3개의 규칙이 있지만 클로저 계산에는 10개의 축약 규칙이 있으며 이 중 2개는 메타 이론을 가지고 있음
- 메타 이론을 가지지 않은 11개 규칙을 가진 다른 버전의 클로저 계산도 있음
- 클로저 계산의 중요성은 계산이 물질에 의존하지 않으므로 보다 단순하고 빠르다는 것에 있음
- 클로저 계산으로 기술된 계산은 모든 메타 이론에서 자유로우며 순수 람다 계산보다 더 쉽게 기계화 가능
- 자유 변수와 클로저 계산
- 클로저 계산에서는 자유 변수가 어디서나 실제로 자유로움
- 순수 Lambda 계산에서 변수 x의 자유 여부는 문맥에 의해 결정, 바깥 쪽에서 활용될 시 자유가 아닌 경우가 있어 복잡성이 증가
- 클로저 계산에서는 변수 x가 여기서도 자유하며, 자유 변수의 존재로 축약 과정을 이해하기 어렵게 만듦
- 이런 이유로 변수 자체에 대한 매핑 추가로 축약이 올바르게 작동하도록 할 수 있음
- ️컴파일러 작성자의 함수형 프로그래밍 관점에서의 변수 할당
- 함수형 언어에서 컴파일러 작성자이고, x를 자신에게 매핑하는 것은 컴파일러에서 익숙한 일
- STG의 이는 새로운 L을 생성하며, f는 힙에 있는 클로저로, 몸체는 힙에 있는 코드에 지정. 각 자유 변수는 값을 보유하는 메모리 위치에 지정
- 환경으로 해석되며 degrees of freedom, 계산 변수를 구현하는 방법은 그것을 메모리 위치에 대한 포인터로 놓는 것
- 자유 변수는 함수 안에서 자유롭지만 클로저 안에서는 바운드된 것으로 해석 가능
- 클로저 계산이 간단해지며 재귀적 프로그램 작성도 가능, 클로저 계산의 특성 상 자연스럽게 정규형으로 컴파일이 가능
- 여기서 정규형은 약신경 정규형처럼 개념적인 것이 아닌, 단순 계산 규칙을 더 이상 줄일 수 없는 형태를 의미
- 함수형 프로그래밍에서의 'Frozen Form' 개념
- Frozen Form은 pen, paper 또는 기계기억장치의 비트로 작성되는 것이다. 일반형태와는 다름
- 함수형 프로그래밍 언어에서 컴파일된 프로그램 대해 고려하지 않는다. 컴파일 및 실행을 구분해 최소한의 작업으로 런타임에 대비
- 컴파일과 런타임 사이, 이진코드로 변환하여 하드디스크에 저장
- 태깅 어플리케이션의 컴파일 시간 축소 중지와 재귀 프로그램 실행 방법
- 프로그래머에게 '태깅 어플리케이션에서 @ 기호는 컴파일 시간에 축소를 중지하는 방법'
- 태깅 어플리케이션의 최종 프로그램 평가에는 무영향. 이 두 프로그램은 실행 중에 '@'로 평가
- 컴파일 시간에 두 단계의 축소를 가지고 있을 때, 이 프로그램들의 컴파일된 버전을 살펴보면 하나는 간단하고 하나는 그렇지 않음
- 프리즌 용어 제거하는 방법은 대체로 베타의 동등하게 대체함으로써 각 단계에서 Frozen term을 제거 가능
- 우리는 컴파일러가 재귀성에 빠지는 것을 방지하기 위해 ad를 추가함으로써 컴파일러 중지 가능
- 이러한 경우에도, 태그를 제거할 수 없기 때문에, 이젠 쓸모 없는 용어가 됨
- 프로그램 정규화의 중요성과 실행 속도에 미치는 영향
- 정규화된 폐포 논리 계산 형식을 사용하면 표준 응용프로그램인 SS, 즉 정규형이 출현
- 정규 형식을 도입한 후, 정규 형식이 아닌 용어를 강제로 정규화된 폐포 논리 해석기에 통과시키면 Lambda 아래로 축소 시도
- 결과적으로 정규 형식인 항등 함수로 변환
- 프로그램을 정규 형식으로 작성할 수 있는 능력은 매우 중요, 이는 프로그램이 실행 시간에서 더 빨라지도록 함
- 따라서 프로그램에서 정규 형식을 활용하는 이유가 중요
- 실행 전에 프로그램을 빠르게 실행할 수 있는 정규 형식을 강제로 정규화함으로써 실행 속도를 향상 가능
- AGI를 만드는 열정, 클로저 산술 해석기 공부와 성과
- "AGI를 구축하는 것이 인생 동기"로, 기본 컴퓨테이션을 이해하는 것이 중요
- 자체 딥 러닝 라이브러리 보유, 클로저 산술 해석기 구현 및 성능 평가
- 클로저 산술 해석기 구현과 속도 측면에서 우월함, 순수 람다 산술보다 5배 빠름
- 람다 계산법의 메타이론과 클로저 계산법의 성능 측정 비교
- 람다 계산법의 메타 이론에 많은 시간을 들이며, 클로저 계산법의 성능을 평가하기 위해 해시를 사용한 클로저 계산법 해석을 이용한 벤치마킹을 실시
- 표준 방법이 아닌 람다 계산법을 빠르게 만들고 싶다면, 기존의 프로그램에 복잡성을 더하는 것을 고려 필요
- 일반적인 벤치마크 프로그램이 HLL 언어로 개발되는 것이 어려워, Haskell 언어로 만든 프로그램을 통해 순수한 람다 계산법과 클로저 계산법의 비교 진행
- 벤치마크 프로그램의 첫 번째 해석기를 HLL 언어로 작성하였으나 일관성 없는 결과를 얻어 결국 Haskell 언어로 변경
- 런타임에서 조절할 수 있는 매개변수가 많아 결정적인 벤치마킹이 어려웠음
- 프로그램들은 Haskell 프로그램으로 시작하여 순수한 람다 계산법으로 변환, 이후 클로저 계산법으로 변환
- 결과적으로 클로저 계산법을 통해 Haskell 언어와 벤치마킹을 수행
- 하스켈 홈페이지의 프라임 함수와 클로저 산식의 중요성
- 헤스켈 홈페이지에 있는 프라임 함수를 소개하며 하스켈의 간결함을 강조하고, 기능을 벤치마킹해야 한다고 강조
- 최초에는 순수 람다 계산의 '스콧 코딩' 버전을 사용했으나, 이는 700줄의 코드로 복잡하다고 언급
- '암시적 프렐류드'를 사용하면 더 어려워진다고 설명
- 특히 클로저 산식을 사용하면 메타이론없이 더 간단하고 빠른 프로그램 제작 가능, 이를 기반으로 함수형 프로그래밍을 추구해야 한다고 강조
- 그리고 추후에는 람다에 대한 타입이 나오고 더 많은 질문과 답변이 이루어질 것을 기대
- 개별적인 계산법으로의 발전에 대한 토론
- 간단하게 'SK'같은 복잡한 계산법이 개발되는 과정이 내용 독립성과 명명 주제로
- 클로저 클로저 계산법과 비교했을 때, 추상화 계산법을 통해 이에 대한 느낌을 하나의 측면으로 보는 것 같음
- 추상화 계산법에 대한 강인한 신뢰, 클로저 클로저 계산법은 한 측면에서 부수 트랙같은 요소로 이해 가능
- VidiGo An Alien Lambda Calculus • Xuanyi Chew • YOW! 2019
- What is a Monad? - Computerphile
- Yet another "What is a Monad" post
- "Build Your Own Probability Monads" paper, blog posts and source code
- Monadic IO: Laziness Makes You Free
- Using Monads in C++ to Solve Constraints
- Monads in Elixir
- Logic, Languages, Compilation, and Verification
- The list monad in Perl and Python
- Monads Are Not Metaphors
- Functors, Applicatives, And Monads In Pictures
- IO monad realized in 1965
- Arrows, Monads and Kleisli – part I
- monads-in-clojure Back in 2009 I wrote a four-part tutorial on monads for Clojure programmers. It can be considered an introduction to the algo.monads library
- Asynchronous Programming and Monad Transformers in Scala
- Monad Programming with Scala Future
- Functors, Applicatives, And Monads In Pictures
- Functional programming: Monads made clear - in javascript
- Brian Beckman: Don't fear the Monad
- Monad - FunFunFunction #21
- 모나드(monad)와 클로저(clojure)
- The Curse of Understanding
- 모나드 합성의 대안
- JavaScript 모나딕 파서
- A Monad Menagerie
- Your easy guide to Monads, Applicatives, & Functors
- Describing Data...with free applicative functors (and more)—Kris Nuttycombe
- Move Over Free Monads: Make Way for Free Applicatives! — John de Goes
- Monad는 무엇인가
- How would you explain a concept of monads to a non-CS person?
- Monad Fact #1
- Monad Fact #2
- Monad Fact #3
- 3분 모나드
- A Monad is just a Monoid… - Michele Stieven - Medium
- Functional Programming with Effects by Rob Norris - YouTube
- Ep 9: Transformers, Monads in Disguise - YouTube
- The Absolute Best Intro to Monads For Software Engineers - YouTube 지금까지 봤던 모나드 설명 중 최고
- What the Heck Are Monads?! - YouTube
- Monads Are Not About Sequencing (Lawful Monads In A Concurrent Setting) by Tomas Mikula - YouTube
- The Death of Monads? Direct Style Algebraic Effects - YouTube
- An Intuitive Guide to Combining Free Monad & Free Applicative • Cameron Joannidis • YOW! 2018 - YouTube
- Nicolas Rinaudo THE DEBATABLY FREE MONAD Scalar Conference 2024 - YouTube
- 모나드(Monad)는 사실 쉽습니다. - 함수형 프로그래밍 끝판왕 깨기 - YouTube
- PyMonad implements data structures typically available in pure functional or functional first programming languages like Haskell and F#. Included are Monad and Monoid data types with several common monads included - such as Maybe and State - as well as some useful tools such as the @curry decorator for defining curried functions. PyMonad 2.x.x represents an almost complete re-write of the library with a simpler, more consistent interface as well as type annotations to help ensure correct usage
- Origins of Python's "Functional" Features
- Functional Programming in Python
- A functional standard library for Python http://toolz.readthedocs.org
- Functional Programming Demystified
- PyconKr2018 Functional Programming
- A functional standard library for Python http://toolz.readthedocs.org
- Episode #117: Functional Python with Coconut
- Elements of Functional Programming in Python
- Daniel Kirsch - Functional Programming in Python - YouTube
- FP demystified - YouTube
- PyCon AU 2018 | FP demystified
- Going Functional in Python (with code) | by Hair Parra | Analytics Vidhya | Sep, 2020 | Medium
- Functioning with python functional programming- lambda, map, filter, zip, reduce, accumulate | LinkedIn
- 3 Simple Ideas From Functional Programming To Improve Your Code - YouTube
- PyconKr2018 Functional Programming | PPT
- funcy: A fancy and practical functional tools
- Monads, in my Python? by Xuanyi Chew - YouTube
- Monads in Python: Why and How? - YouTube
- Monads in Python. A simple implementation of the Failure… | by Martin McBride | The Startup | Medium
- 7 Functional Programming Techniques EVERY Developer Should Know - YouTube
- pampy: Pampy: The Pattern Matching for Python you always dreamed of
- Pycket: A Tracing JIT For a Functional Language
- PyToolz API Documentation — Toolz 0.10.0 documentation
- scalaps Introducing scalaps: Scala-inspired data structures for Python
- simplematch: Minimal, super readable string pattern matching for python.
- Scala code examples for Functional Programming Jargon
- A Beginner-Friendly Tour through Functional Programming in Scala
- 진짜 함수형 초보자들을 위한 트레이닝(1) in Scala
- Functional Programming Crash Course for Scala Beginners - YouTube
- DDD(domain driven design) 관점에서 객체지향 vs 함수형 코드 비교
- Domain-Driven Design with FP in Scala | Medium
- Functional programming and Spark: do they mix?
- Let’s Code Real World App Using Purely Functional Techniques (in Scala)
- Lambda Calculus - Computerphile
- Switching from OOP to Functional Programming scala, haskell 예제로 설명
- A Crash Course in Category Theory - Bartosz Milewski
- Fun(c) 2018.7: John De Goes - FP to the Max
- Plain Functional Programming by Martin Odersky
- How to Build a Functional API—Julien Truffaut
- Real-World Functional Scala by Chris Birchall
- Scala vs Java In Competitive Programming With Functional Programming
- Did Functional Programming get it wrong?
- Demystifying Functional Programming (Part 1)
- Demystifying Functional Programming (Part 2) — The need for immutability
- How I learned to stop worrying and love FP in Scala
- On Eliminating Error in Distributed Software Systems
- Hangman in FP Scala
- Functional Programming features in Scala
- Currying in Scala: A Useful Example
- Scala journals — Currying: The tale of a code example no one actually ever used | by Annette R. | Aug, 2020 | Level Up Coding
- Partially Applied Functions And Currying
- Foundation of functional programming course https://www.fp-tower.com/foundation
- Zero-Overhead Tree Processing with the Visitor Pattern
- Learn Functional Programming course/tutorial on Scala
- My FP Journey
- FUNCTIONAL PROGRAM (RE)DESIGN coursera
- Functional Tree Traversal (In Scala)
- What Functional Programming Is, What it Isn't, and Why it Matters
- Learning Functional Programming with Scala | by Ryan Susana | Medium
- More Algebra of Algebraic Data Types
- Functional Scala - Introduction to Interruption by Jakub Kozlowski - YouTube
- f(by) 2020: A functional Scala stack for 2020, Adam Warski - YouTube Scala, http4s, tapir, monix, doobie: a solid basis for backend applications
- Anatolii Kmetiuk at #ScalaUA - An argument against functional programming - YouTube immutability, purity, category theory
- Builder Pattern in Scala with Phantom Types | by Maximiliano Felice | Medium
- Monad Transformer Is All You Need | by Abhijit Gupta | The Startup | Medium
- Principled error handling - Beyond MonadError - Luka Jacobowitz - YouTube
- Part 1 - Data / Types / Referential Transparency / Value prop
- Part 2 - Programming with Effects
- Part 3 - Typeclasses
- Part 4 - Practical effect manipulation
- Part 5 - Basics of Final-tagless / ZIO
- Divide, conquer, choose, ap and alt by Samuel Halliday at Scala in the City October 2020 - YouTube
- Let’s apply functional programming to solve a practical problem | SoftwareMill Tech Blog
- Programming with Functions #1 - Introduction - YouTube
- Programming with Functions #2 - Functions as Data - YouTube
- FunctionalTV - YouTube
- Scale By The Bay 2020: Justin Heyes-Jones, Applicative: The Origin Story - YouTube
- Function Applicative for Great Good of Palindrome Checker Function - …
- Parallel analysis of temperature dataset | Functional Scala - YouTube
- What the Functor? | Functors in Scala | Rock the JVM - YouTube
- Image editing with Functors | Blog of Adrian Salajan
- Introduction to Functors With Scala 3
- 2020 Hindsight - Scala | 2020 Hindsight - Scala
- 01A: Scala FP basics: First-class function, higher order function, statements Vs expressions, immutability & recursion | Java-Success.com
- A Monads Approach for Beginners, in Scala | Rock the JVM - YouTube
- Functional Design | Francis Toth / Contramap
- A pure functional Primality Test in Scala - DEV Community 에라토스테네스의 체
- Functional Programming in scala – Raghav Speaks
- Functional Programming in Scala Part II – Raghav Speaks
- Functional Programming in scala Part III – Raghav Speaks
- The case against Effect Systems (e.g., the IO data type) - Alexandru Nedelcu
- Cut the Technobabble - Alexandru Nedelcu
- Functional Programming in Education • George Wilson • YOW! 2019 - YouTube
- Sharding With Pure FP by Pierre Ricadat - YouTube
- Is FP Really That Easy to Reason About? (For Beginners) - YouTube
- Functional Programming anti-patterns in Scala | ScalaJobs.com
- Functional Data Modeling in Scala | ScalaJobs.com
- Functional Programming is Based
- Understanding FP: Overcoming Intuition and Ease Hurdles - YouTube
- Unveiling much Simplified Functional Programming in Scala • Afsal Thaj • YOW! 2020 - YouTube
- Introduction to Functional Programming (video course) | alvinalexander.com
- How to gently introduce an FP library - YouTube
- Foundations of Functional Programming in Scala - YouTube
- Functional Parallel Programming in the wild - Rock the JVM Blog
- Functional Programming in Scala Course for Edu | JetBrains Marketplace
- Kyo