요새 만들고 있는 라이브러리 테스트 케이스인데, 이런게 쓸모가 있을까?
def test_map_combinators(self):
class Fixture:
value = from_value(1)
doubled = map_value(value)(ops.map(lambda v: v * 2))
numbers = combine(value, doubled)(lambda o: rx.combine_latest(*o))
combined = combine_latest(value, doubled)(ops.map(lambda v: f"{v[0]} * 2 = {v[1]}"))
zipped = zip_values(value, doubled)(ops.map(lambda v: f"{v[0]} * 2 = {v[1]}"))
combined = []
zipped = []
fixture = Fixture()
observe(fixture.zipped).subscribe(zipped.append)
observe(fixture.combined).subscribe(combined.append)
self.assertEqual(1, fixture.value)
self.assertEqual(2, fixture.doubled)
self.assertEqual((1, 2), fixture.numbers)
self.assertEqual("1 * 2 = 2", fixture.combined)
self.assertEqual("1 * 2 = 2", fixture.zipped)
self.assertEqual(["1 * 2 = 2"], combined)
self.assertEqual(["1 * 2 = 2"], zipped)
fixture.value = 3
self.assertEqual(3, fixture.value)
self.assertEqual(6, fixture.doubled)
self.assertEqual((3, 6), fixture.numbers)
self.assertEqual("3 * 2 = 6", fixture.combined)
self.assertEqual("3 * 2 = 6", fixture.zipped)
self.assertEqual(["1 * 2 = 2", "3 * 2 = 2", "3 * 2 = 6"], combined)
self.assertEqual(["1 * 2 = 2", "3 * 2 = 6"], zipped)
한 마디로 이야기하면 클래스 속성을 Rx로 쓸 수 있게 하는 도구인데, 아직 이게 말이 되는 건지 확신이 안가는 중임.
이런 식으로 코딩하는 게 의미가 있을까?
여긴 함수형 잘 아는 애들도 많으니 왠지 의견 물어보면 참고가 될 것 같네.
여담이지만 파이썬 타이핑도 구리고 람다도 구린데 둘이 합쳐 놓으니 환장할 콜라보인 듯... -ㅅ-
쓸모없어보이고 코드도 별로고 ;;
비판은 좋은데 이유를 말해봐. 그게 필요함.
근데 지금 보니 코드 포맷 다 망가졌네...
이걸로 봐라:
https://gist.github.com/mysticfall/45731f9937480b7e6a0ae294d68889a7
아 ㅋㅋ 하스켈만 해서 이런거 모룬다 - dc App
아쉽... 너 의견이 젤 궁금했어 ㅎㅎ;
이런건 웹하는 사람이 더 잘알듯 - dc App
오키에도 같은 글 썼는데 거긴 꽤 날카로운 지적 많이 달리던데 어째 함수형 고수들도 많은 여기선 비추만 올라가냐? -ㅅ-a;