@ailrunAilrun (UTC-5/-4) 아하. CBPV의 thunk와 force를 일반화하면 두 언어 사이에서 항을 변환하는 사상을 떠올릴 수 있겠네요. 메타프로그래밍 관점에서 생각하면 항을 메타 언어의 데이터로 바꾸는 생성자(lisp의 quote 같은)와 메타 언어의 데이터를 대상 언어의 항으로 되돌리는 eval 생성자를 생각할 수도 있겠어요. 더 흥미로워지는데요?
@ailrunAilrun (UTC-5/-4) 생각해보면 return도 두 언어를 오가는 대응에 해당하네요. 모든 값을 계산으로 바꾼다는 점에서 force보다도 더 thunk의 짝이 되기 좋아보이나 싶지만 조금만 더 생각해보면 둘을 합성해서 항등 사상을 얻을 수가 없으니 아주 잘 어울리는 한 쌍은 못 되는군요. 뭔가 to의 역할을 잘 생각해보면 보이는 게 있을 거 같은데… 고민해봐야겠어요.
If you have a fediverse account, you can reply to this note from your own instance. Search https://hackers.pub/ap/notes/01963ef7-0c87-7546-a507-04639a1d294b on your instance and reply to it.
@ailrunAilrun (UTC-5/-4) 재밌게도 force . thunk랑 return . thunk 모두 항등 사상이 못 되네요. 이건 값이 ‘~인 것‘이기 때문일까요? ~인 것을 갖고 무언가를 더 하기 위해서 return과 to가 있는 것인가 싶어졌어요.