잡동사니

반응형

질문


C #의 LINQ와 마찬가지로 Scala의 이해를 위해 Kotlin과 비슷한 점이 있습니까? 지원되지 않으면 계획되어 있습니까?


답변1


특별한 키워드 (do / for)가 없으므로 다른 언어 에서처럼 중첩 된 flatMap (desugaring)으로 직접 변환되지 않습니다.

그러나 coroutines으로 comprehension의 이해를 구현할 수 있습니다.

Arrow 문서에서 : https://arrow-kt.io/docs / patterns / monad_comprehensions / # comprehensions-over-coroutines

coroutines에 대한 이해

이 기능은 여러 이름으로 알려져 있습니다 : async / await, coroutines, do 이해를위한 표기법… 요점을 제외하고는 모두 동일한 원칙에서 파생됩니다. Kotlin에서 coroutines (언어 버전 1.1에서 도입 됨) 컴파일러 가능 겉보기에는 동기 코드를 비동기 시퀀스로 다시 작성합니다. Arrow는 컴파일러의이 기능을 사용하여 모든 모나드 타입 클래스에 대한 coroutines과 같은 표기법.

이는 Option, Try, List, 리더, 관찰 가능, 플럭스 또는 IO가 모두 동일합니다.

coroutines에 대해서는 "JVM @ KotlinConf 2017에서 coroutines에 대한 심층 다이빙"도 참조하십시오 : https://www.slideshare.net/elizarov/deep-dive-into-coroutines-on-jvm-kotlinconf-2017?next_slideshow=1


답변2


Kotlin 1.1의 미리보기 버전에는 다양한 종류의 모나 딕 이해에 사용될 수있는 보편적 인 async / await 구문이 있습니다 :

많은 언어 (2012 년 C #으로 시작)는 비동기를 지원합니다 async / await와 같은 전용 언어 구조를 통한 프로그래밍 키워드. Kotlin에서는이 개념을 일반화하여 라이브러리가 그러한 구조의 자체 버전을 정의하고 비동기는 키워드이지만 단순히 함수입니다.

이 디자인은 다른 비동기 API의 통합을 허용합니다. 선물 / 약속, 콜백 통과 등. 게으른 발전기 (수율)를 표현하고 다른 사용 사례를 다룹니다.

소스


 

 

 

 

출처 : https://stackoverflow.com/questions/34248483/does-kotlin-support-monadic-comprehension

반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band