2013-04-26 2 views

답변

104

예, 함수 Int => Option[A]에 컬렉션을 올릴 수 :

scala> List(1,2,3).lift 
res0: Int => Option[Int] = <function1> 

scala> List(1,2,3).lift(9) 
res1: Option[Int] = None 
+0

니스! 감사합니다! – Loic

+10

스칼라에서 많은 데이터 구조에 대해 '리프트 (lift)'를 이미 보았습니다. 이름 지정 (및 추상화)의 이유는 무엇입니까? – kosii

+2

@kosii는 답이 조금 늦을 수도 있지만이 경우 "리프트"는'Int => T' 형식의 부분 함수에서 Int => Option [T]'형식의 전체 함수로 변환하는 것을 의미합니다. 일반적이지 않은 것에서 좀 더 일반적인 것으로 변환하거나, 바꾸어 말하면 새로운 구조를 추가하는 일반적인 용어입니다. 모나드를 모나드 변압기로 변환하거나, 펑터를 프리 모나드로 변환하는 것. 나는 그 용어가 범주 이론에서 왔다고 생각하지만, 나는 명확한 언급을 찾을 수 없었다. –

관련 문제