튜링에서 한 프로세스를 실행하고, 다음 프로세스를 실행하는 걸 "명시"하지 않는데, 이를 명시적으로 어떤 combinator로 보고, 전역 변수등은 또 람다로 감싸서, 람다 컨텍스트에 있는 변수를 보게 하면, 람다와 다를게 없다.
튜링과 람다가 철학이 다르다기 보다, 마치 튜링에서 암묵적으로 하던 동작들을 모두 명시적으로 바꿔 놓은 게 람다 대수인 건 아닐까?

lionhairdino
@lionhairdino@hackers.pub · 53 following · 60 followers
지금까지 다루어 봤던 언어는 아래와 같습니다. MSX Basic Z80 Assembly Pascal GW-Basic C Macromedia Director Visual Basic PHP Flash Actionscript C++ Javascript
그리고 지금은, 하스켈을 비즈니스에 쓰려고 몇 년간 노력하고 있습니다. 지금 상태는, 하스켈 자체를 연구하는 게 아니라, 하스켈 (혹은 함수형 언어) 이해가 어려운 이유를 연구하는 아마추어 연구가쯤 되어버렸습니다. 하스켈 주제로 블로그를 운영 중이지만, 아직은 하스켈 프로그래머라고 자신 있게 말하진 못하고 있습니다. 가끔 이해에 도움이 될만한 측면이 보이면, 가볍게 아이디어를 여러 SNS에 올려보곤 하는데, 그다지 프로그래머에게 쓸모 있는 내용이 포함되진 않는 것 같습니다.
제가 급히 일을 의뢰할 일이 있어, 얼마전 몇 분에게 의견을 물었던 적이 있는데요. 디코나 해펍에 양질의 글을 올린 분들, 오픈 소스에 기여한 분들 위주였던 것 같아요. 프로필에 적힌 스펙보다는 다 년간 봐왔던 “성의있는 액션”들이 신뢰의 근간이 되는 것 같았습니다.
https://www.reddit.com/r/haskell/comments/1mh89i0/haskell_realworld_example_with_effectful/ 반가운 이름이 보이네요. 그래서 왜 effectful로 넘어갔을까나...
가정법 과거...어쩌고 하는 문법
지금은 이미 어떤 일이 일어난 이 후의 상황에 대해 말을 하고 있고,
이미 일어난 과거의 일은 바꿀 수 없으니,
If I were you ... 가 전혀 어색하지 않고, 추가 설명도 필요 없을 정도로 자연스러운데,
현실과의 거리감, 현실에서 물러섬 같은 걸로 설명하는 걸 보면 아쉽다.
(우리 말에서도 "내가 너라면" 대신 "내가 너였다면"을 쓰기도 한다.)
굳이 논리적이지 않거나, 추상적인 설명들이, 머리가 하나의 언어로 고정된 이 후에는, 다른 언어가 자연스럽게 스며드는 걸 막기도 하는 것 같다.
이런 설명들이 보이면, 내가 영어를 못하는 이유의 변명으로 쓰이기나 하지, 그다지 좋아 보이지 않는다.
...
외국어는 많이 쓰는 게 최고란 건 알고 있다. 그렇다면, 문제는 더 명확해졌다. 영어 자체에 대한 고민보다, 영어를 자주 쓸 환경을 만들 고민을 해야 한다!... 고 합리적인 길을 찾았다라고 생각하지만, 이미 위와 같은 분석질을 해대고 있으면 벌써 꽝이다.
좀 전에 8시 전후로 남산에서 설렁 설렁 달리기 하고 있었는데, 어디선가 클럽 음악 같은 게 크게 들리더라고요. 대충 동국대 근처 지날때쯤인가 싶던데, 혹시 파이콘인가요?
한 성깔하는 해커스펍 고량(양)이
저는 승질 머리 고양이가 메인이 되어야 한다에 한 표입니다.
아.. 저 승질 머리 고양이, 득 해야 하는데...해펍 모임은 언제인가요?
소풍처럼 왔는데, 하루치 운동 좀 과하게 한다싶더니, 이제 극기 훈련 모드다
청도 놀러 가신 분 사진으로 염장 지를 때가 지났는데, 소식이 없네요. @bglbgl gwyng
왜 deploy가 배포로 번역이 굳어졌을까요? 제가 알기론 distribute와 deploy는 뉘앙스가 많이 다른데요.
무언가 정보, 서비스에 촛점을 맞추면,
그나마 억지로 deploy해서 distribute된다가 말이 되긴 하는데,
앱, 소프트웨어 자체에 촛점을 맞추면 deploy와 distribute는 바꿔 쓸 수 없는 말이 되고,
"서버 앱을 (마케팅 전장에) 배치하자"...맞는 말이지만, 이제 낯선 말이 되어 버린 것 같고,
"서버 앱을 배포 하자"는 말이 안되지만, 통용되는 말이 되어 버린 것 같습니다.
SNS에 글을 올릴 때, 본인 글을 다른 사람들이 보고 공감하거나, 관심 가지길 원하며 올릴텐데,그 "욕구"가 이루어졌음을 알려주는 지표가 하트, 좋아요라 생각합니다. 최대한 사람들이 행위 자체에 부담을 느끼지 않도록 하는게 중요하고, 그래서 하트, 좋아요가 원클릭에 이루어지도록 만든 이유 아닐까 싶어요. 다른 SNS로 출장을 가지 않으면 지금도 충분하긴 한데, 출장가서 좋아요 누르다 오면, 살짝 아쉽게 느껴지네요.
대안으론 하트는 기본 원클릭, "···"을 누르면 다른 종류의 이모지 붙이기.
현 DB에선 반응 개수 표시하는 게 좀 애매하긴 할 것 같습니다만...
서비스 자체의 성패에 영향을 미치는, 생각보다 중요한 인터페이스가 아닐까 싶어 글을 남깁니다. @hongminhee洪 民憙 (Hong Minhee)
비교 대상이 없을 땐 상관 없는데, 어쩌다 엑스, 쓰레드 출장 나가서 원 터치에 하트 붙이는 게 편하게 느껴지네요.
Claude에 나와 대화한 걸 학습 데이터로 쓰지 말라고 하는 설정이 따로 있나요? 팀 Pro 플랜은 쓰지 않는다고 하는 것 같은데, 개인 Max 플랜은 따로 얘기가 없는 것 같습니다.
웬간한 건 학습해도 상관 없는데, 어쩌다 한 두 개 학습을 안했으면 하는 게 생기네요. Team은 1인당 25달러 쯤인데, 200달러 Max는 어찌 안될까요?
가끔 중요 키를 붙여 넣어서 질문했다거나...
웬일이래유... 엘룬님이 다른 분 초대를 다하고.ㅎ @ailrunAilrun (UTC-5/-4)
@hyeonsigHyeonsig Jeon 어서 오세요~ 반갑습니다.
nn년동안 햇빛과 친하지 않게 살아서, 지금은 뱀파이어와 다른 성향이 생겼습니다. 해만 보면 30분 이상은 슬로우 조깅을 하고 싶어합니다. 롱런할 개발자분들은 햇빛과 친분도를 잘 생각하며 살아야 합니다. 탈나는 사람들 자주 봅니다. 오늘 폭염 경보라는데, 그래도 해볼까 생각 중인데요. 죽진 않겠지요?
함수는 파란색, 변수는 빨간색 같은 의미없는 알록 달록 말고, 함수들이 소속된 모듈 별로 색이 다르다든지, 로컬 변수, 글로벌 변수, 매개 변수를 구별한다든지.. 누가 안 만드나...
어제 튜링의 사과를 처음 구경했습니다. 귀인들 만나느라 이용은 안하고 구경만. 조금 과장해서 얘기하면, 다른 공유 오피스와는 다르게 PC방에 개발자 모인 것 같은 느낌이었습니다. 다른 오피스들처럼 조용하고, 조금은 생기 없는 풍경이 아니라, 상대적으로 소음도 좀 있고, 활기가 있어 보여 의외였습니다. 장소 오너분들도 개발자로 알고 있는데, 개발자 이해도가 높은 게, 영향이 있는 것 아닐까요?
(삶에 찌든 사람들 모인 PC방 말고, 젊은이들이 즐겁게 노는 모습의 PC방입니다.)
요즘 함수 적용Apply에 꽂혀서, 처음 보는 프레임워크 코드들을 Apply 위주로 읽으니 그럴싸합니다. 그래서, Apply 생각 일부를 정리했습니다. 함수형 프로그래밍 언어도 익숙하지 않은 외국어와 비슷한 느낌이라, 코드들을 정확히는 몰라도 일단 통밥으로 읽는 방법을 계속 훈련 중입니다.
Apply - 이펙트가 있는 함수들을 연이어 적용하고 싶어
Apply - Price와 (exRate -> Price)를 다루는 프로그램의 골격을 똑같이 하고 싶어
해커스펍에 바로 올릴까 했는데, 읽어보니 조금 더 정돈하고 올리고 싶다는 생각이 들어, 개인 블로그에 먼저 올립니다.
맞다 맞다 하면서, 청개구리 타래에 다 하트 눌렀습니다.(해커스펍에 중복 글 안보이는 타래 기능이 어여 들어 오길... 설마 TS 전혀 모르는 제가 TS 익혀서 기여할 수 있을 때까지 안들어오진 않겠지요) 여기 몇 분은 아실 것 같은데, 전 빅 황소 청개구리입니다. 튼튼한 손 발로 돌파해야 하는데, 얘들이 힘이 약해지고 있어요.
하스켈 db 라이브러리 Opaleye를 쓰려고, Arrow를 봤었는데. 지금은 Arrow를 안 쓰고 Applicative 스타일로 넘어간 것 같습니다. 일정 수준에 다다른 라이브러리 제작자들도 느낀 거지요. 추상화가 고급스럽고 좋긴 하지만, Arrow는 너무 갔다고. (<- 몇 년 전 이야기로, 어디까지나 혼자 추측입니다.) Arrow가 뭔지 알고는 있는 것 같은데, 아직도 쓰려면 (읽는 것 말고) 입술이 마릅니다. Opaleye 예시가 Arrow를 안 쓰니 훨씬 마음이 편하게 접근하네요.
같은 류에서 킬러 기능이 탑재됐다면, 좀 어려워도 꾸역 꾸역 가져다 쓰지만, 그렇지 않은 경우는 고급스러운 모양보다는, 쓰기 편한 게 장땡입니다.
문법 강조가 바뀔 때가 한참 지난 것 같은데, AI가 별의별 걸 다하는 세상에 아직도 눈에 보이는 소식들이 없네요.
예를 들면, 식별자(변수), 함수, 등 문법 요소에 따라 색을 입힌다거나 하는 게 아닌,
전역이냐, 로컬이냐로 색을 달리 한다든지,
오른쪽 우선 결합 연산자면 빨간색, 왼쪽 우선 결합이면 파란색 한다든지,
시맨틱 문법 강조가 일반화 될 때가 된 것 같은데, 혹시 저만 모르고 있는 건가요?
보통 신분증같이 어떤 대상이 무엇이다를 확인해 줄 수 있는 것들을 Identity라 합니다. 왜 항등이 Identity일까 쓸데 없이 궁금함이 있었는데요. 다음과 같이 상상하면 얼추 그럴 수 있겠다 싶습니다.
더하기 연산자를 <+0>
<+1>
<+2>
로 정의해서
1 <+0> 2 = 3
1 <+1> 2 = 4
1 <+2> 2 = 5
라고 할 때, 지금 내가 쓰고 있는 더하기 연산자가 어떤 연산을 하는지 알려면 0
과 연산을 해보면 알 수 있다.
1 <+2> 0 = 3
결과를 보고, <__>
안의 성질, 즉 연산의 고유 성질을 알아낼 수 있다.
1 <__> 0 = 1
이 나와야 항등원이니, 위의 말이 말그대로 항등원이란 건 아니고,
항등원Identity Element으로 연산의 고유 성질이 뭔지 볼 수 있는 도구가 될 수 있다는 걸 보이는 설명입니다.
이래서 항등원을 Identity Element라고 하는 것 아닌가... 하는 상상입니다.
#항등원 #Identity
윤슬, 볕뉘
들어 보셨나요?
윤슬은, 찰랑이는 물(바다)에 햇빛이나 달빛이 비치면서 부서지는 모습을 말하며,
볕뉘는, 나뭇가지 사이로 (작은 틈으로) 들어오는 햇빛이라 합니다.
윤슬은 노래 가사로 들어 알고 있었는데, 볕뉘는 처음 들어 봤습니다.
잘 안쓰이는 이쁜 말들이 사라지는 걸 아쉬워하는 사람들이 있어, 살다 보면 한 번쯤은 어디선가 들어 보는데, 볕뉘는 전혀 들어 보지 못했습니다.
그러고 보니, 해커스펍에 폴딩 기능(더보기)이 생겼네요. 언제 생겼데요. 이제 긴 글에 댓글 달아도 되겠습니다. 엄지 척... (이모지 어찌 붙이는지 모릅니다)
긴 글들엔 댓글 달기가 꺼려지네요. 스크롤 낭비가 심해져서..흠흠... 초대 링크에 3장 쓰고, 보유한 초대장이 0으로 나와서, 벌써 3분이 오셨는 줄 알았습니다.
현재까지는 마치 원칙처럼 머리를 지배하고 있는 생각이 있는데요.
함수형 프로그래밍을 차지하는 큰 줄기중 하나로,
조금 다르게 생긴 A
와 B
에 모두 대응하는 코드를 만들기 위해
**"인수 분해"**를 잘 해서,
A{ a, b, c, d }
와 B{ a, b, c', d }
로 보고, 이 중에서 다른 c
, c'
을 골라 내고
또, 이 걸 잘 인수 분해해서
c{ e }
와 c'{ f }
를 찾아 내고, 둘이 결국 닮은 구석이 없으면, 우겨서
c{ e, _ }
와 c'{ _, f }
로 자리를 만들고,
_
에 적절한 id
를 집어 넣어 결국, A
와 B
를 같은 류로 만든다
란 생각에서 맴돌고 있습니다.
누가 누가 그럴싸하게 잘 우기나, 포멀하게 우기나!
a = f a
일 때, a
를 f
의 고정점이라 하니
m a = m (m a)
가 된다면, m a
를 m
의 고정점이라 할 수 있다.
모나드는 m a = m (m a)
가 안되는 것을 join
, return
의 도움을 받아 성립하게 만든다.
그래서 m
의 고정점을 바로 m a
라 할 순 없지만, join
, return
의 도움으로 고정점처럼 동작하게 할 수 있다.
처럼 설명해도 되나 싶습니다.
여러 번 작업 한 걸, 한 번의 작업으로 표현한다.
반대에서 출발해서 보면, 한 번의 작업을 여러 번의 작업으로 인수 분해한다.
이런 목적 측면에서 보면, 고정점도 모나드도 하나의 궤로 설명할 수 있지 않을까 싶습니다.
그냥 상상입니다.
주의: 프로그래머에게도 수학도에게도 쓸모 있지 않은 그저 생각 놀이로, 어제 모임에서 제가 떠들었던 잡담입니다.
튜링 완전한 프로그램은 따로 메모리를 두어 관리하며 돌아가는데, 람다 산법은 이런 메모리가 없는데도 불구하고, 튜링 완전이 할 수 있는 일은 모두 할 수 있다고 합니다. 왜 그럴 수 있는지, 시작 아이디어가 뭘까 생각해 봤습니다. (슬쩍 보기엔, 학문적으로 긴 여정이 있는데, 그 걸 모두 따라가기엔 벅찬 일이라, 절대 따라가고 싶진 않고, 그저 아이디어 정도만 알고 싶습니다.)
함수형에선, 정보를 "기억memory"하는 역할도 역시 함수가 담당합니다. 기억이 필요할 땐 함수 구조를 주어, 기억 공간을 만든다고 볼 수 있습니다. 함수 합성에서 다음 함수의 인자로 새로 바인딩하며 기억의 역할을 합니다. 애초 메모리 모델이 없는 게 아니라, 다른 구조로 메모리 모델을 구현했다고 볼 수 있는 것 아닌가 싶습니다. (이렇게 말하는 곳은 없습니다.)
람다 함수는, "따로 호출할 일이 없어 이름 없는 함수로 정의한다" 쯤으로 넘어가기엔, 숨어 있는 의미가 너무 큽니다. 분명, 이렇게 넘어갈 일이 아닌데, 역시나 친절히 설명해주는 자료를 아직은 못봤습니다. (많이 찾아 보 거나, 깊게 공부한 건 아니라서, 어딘가에는 있지 않을까 싶어요)
람다 함수로 만들어,
- 실행 시점 제어
- 함수 합성 체인 참여
- 필요한 정보들을 모아 두는 단위
- 외부와 소통하는 길을 만들어 둘 수 있고, ...
여기에 기억이라는 중요한 역할도 담당하게 합니다.
람다 산법은 매개 변수, 함수 몸체, 적용, 이렇게 3가지 요소만으로 모든 걸 해결합니다. 알론조 처치 아저씨는 어찌 이런 구조를 떠올렸을까 싶습니다. 애초에 위와 같은 식으로 볼 수 있는 함수 통찰의 눈이 먼저 있었던 상태에서 만든 거겠지요?
하스켈 모임할 때도 해도사가 적극 후원해 주셨었는데, 닉스 모임할 때도 또 적극 후원해 주시고, 후원 감사합니다. 너무 한 회사만 달리고 있어, 다른 스폰서를 적극적으로 찾아봐야 하지 않을까요. 하스켈, 닉스 사용 중인, 혹은 도입을 염두하고 있는 회사 또 없나요?
0차 닉스 모임을 다녀왔습니다. 공식 중대형 컨퍼런스도 좋지만, 커뮤니티의 소수 인원이 모이는 자리만의 재미가 있네요. 간만에 목쉬게 수다 떨다 왔습니다. 회사 소속 모든 인원이 닉스를 쓰는 회사가 있다니...
“아, 나 아저씨였지”하고 갑자기 각성하신 건가요 ㅋㅋ. 저한테는 아직 쌩쌩한 분입니다@hollo
돈까스 옆에 있는 허연 풀떼기(양배추)를 남기지 않을 나이가 됐나 봅니다@hollo
닉스 서울숲 번개 갑니다. 옛날 말인가, 요즘은 번개 뭐라 하지요?
혹시 이 후 글 타래(쓰레드) 표현에 대한 계획이 예정되어 있는지 모르겠네요. 지금, 상위 글이 흐릿하게 나오긴 하지만, 시선 분산이 되는 건 막지 못하는 것 같습니다. 상위 글의 폰트 크기까지 줄이든가, 디폴트로 폴딩 되어 있다거나 하면 어떨까요?
페인트, 도배 공구 중에 스크레이퍼고 있는데요. 기존 페인트나 종이를 긁어서 떼어내는 도구입니다. "모으다/버리다" 뉘앙스보다는, "어딘가에 붙은 신문(사극에서 흔히 보이는 방榜)을 긁어서 떼어 내다" 뉘앙스가 들어 있어서 그렇게 쓰인게 아닌가 싶어요.
Intel 쓰고 있는 데스크탑 시스템의 메인보드가 고장이 나서, CPU, 메인보드만 AMD로 갈아 탔습니다. 그러고, 원래 쓰던 nixos 설치된 nvme로 부팅을 하니, 아무런 군소리 없이 부팅이 됩니다?! os 재설치 안해도 되어 한 숨 돌렸지만, 한 편으론 왜? 군소리가 없는지 아주 살짝 불안하네요. 각 종 칩셋들 드라이버 다 제대로 잡힌 건지...
@seungheonoh 이미 해커스펍에 계신 걸로 생각해서 따로 초대할 생각을 못했네요.
저는 함수형 프로그래밍을 만나기 전에는 이펙트란 걸, 개념은 고사하고 용어조차 들을 일이 없었는데요. 지금은 함수형 프로그래가 아니라도 많이들 아시는 것 맞지요?
Haskell is used by startups and large corporations, because it’s one of the best and easiest programming languages for high-performance multi-core processors with convenience and efficiency.
진짜? easiest라고? https://discourse.haskell.org/t/emphasize-why-haskell-on-haskell-org-landing-page/12036
@kizoo김재우 님, 해커스펍에 오신 걸 환영합니다.
사진이 뭔가 귀여운 것이, 사람들이 아담한 사람으로 오해하겠는데요. @hollo @hongminhee洪 民憙 (Hong Minhee)
요 며칠, 객체지향을 주제로 대화하는 두 분의 글타래를 팔로우 하자니, 타래 보여주는 레이아웃이 쬐끔 아쉽네요.
Compile 이 대충 com (with의 뜻) pile 쌓다 느낌 아닐까 했는데요. 어원 찾아 보니, compile과 compress가 비슷한 뜻이군요. compile은 이 것 저 것 모아서 패키징하는 느낌이고, compress는 여기에 눌러 담다란 느낌이 추가되는 것쯤으로 보입니다.
꼿꼿한 자세에 모니터(32인치, 모니터암 사용중)를 눈높이까지 올려 보는게 대부분 추천 자세로 알고 있는데요. 이렇게 맞춰 놓으면, 항상 몸이 의자에서 흘러내려, 높은 모니터를 보려면 눈을 치켜 뜨면서 보게 되는 안 좋은 습관이 생겨 버렸습니다. 남들한테 다 좋아도, 저한테는 안좋은 건가 봅니다. 그래서, 권장되는 모니터 셋팅을 과감히 무시하고, 가장 낮춰서 썼습니다. 그랬더니, 이 번엔 아래 쪽을 볼 때 불편함이 생겼습니다. 까다롭지요.
그런데, 우연히 노트북 모니터마냥 비스듬히 눕혀 놓고 2~3주째 사용 중인데, 이 거 편합니다. 32인치에 기계식 키보드 달린 노트북 느낌 납니다.
기도하며 복구 프로그램 돌리는 방법말고 없지 않나요? (전 무교입니다.)
올 해 2025년은 음력 6월이 두 번 있습니다. 지금까지 "윤"은 4년에 한 번씩 있겠거니 했는데, 19년에 7번 윤달(閏月)이 들어간다네요. 똑 떨어지지 않는 수로 주기가 도는 느낌입니다.