나는 ((:[]) <$> xs)
을 사용했지만 더 명확한 방법이 있다면 그것을 사용하고 싶습니다.하스켈 : 목록의 모든 항목을 자체 목록에 삽입하는 관용적 인 방법이 있습니까?
편집 : 너무 많은 좋은 답변들! 나는 그들이 모두 좋기 때문에 내가 받아 들일 수 있다고 생각하지 않는다.
나는 ((:[]) <$> xs)
을 사용했지만 더 명확한 방법이 있다면 그것을 사용하고 싶습니다.하스켈 : 목록의 모든 항목을 자체 목록에 삽입하는 관용적 인 방법이 있습니까?
편집 : 너무 많은 좋은 답변들! 나는 그들이 모두 좋기 때문에 내가 받아 들일 수 있다고 생각하지 않는다.
어쩌면?
map (\x -> [x]) xs
여러분이 생각하는 어떤 functor에서나 작동 할 수 있습니다. 이것은 단지 목록에 대해서는 더 이상하지 않을 것입니다.
나는 map return
또는 map pure
으로 충분하다고 생각합니다.
분할 패키지는 이름이 다양한 맵 솔루션보다, IMO, 더 의미있는 (Data.List.Split.) chunksOf 기능 제공 (그들은 더 관용적 경우에도 있습니다.) 당신은 또한 사용할 수 있습니다
지능형리스트 : 같은 간단한 예를 들어
[ [x] | x <- theList]
어쩌면 과잉하지만 상황에 따라, 어쩌면 당신은 싱글 목록의 일부 추가 처리로이 단계 병합 할 수 있습니다 :
[f [x] + 13 | x <- theList]
do
표기법을 사용 :
do { x <- xs; return [x] }
혀 -에 - 뺨 버전 :
import Data.List
groupBy (const . const False) xs
나는'주장 것 ([])'pure''@jozefg 반환 및 적은 문자 – jozefg
보다 명확 더 짧습니다. – is7s
사실,하지만 수입하고 수입해야합니다. – jozefg