▲GN⁺ 2025-01-20 | parent | ★ favorite | on: Haskell: 뛰어난 절차적 언어(entropicthoughts.com)Hacker News 의견 Haskell의 타입 시스템은 다른 인기 있는 언어들과 비교할 때 복잡함이 있음. 특히 *>, <*>, <*와 같은 연산자들은 코드베이스 전반에 걸쳐 학습 곡선을 높임 한 달 동안 Haskell을 사용하지 않으면 >>=와 >> 같은 연산자를 다시 공부해야 생산성을 유지할 수 있음 Haskell의 개념을 사람들과 대화하지 않고 혼자 공부하면 어려움이 있음 Haskell은 명령형 프로그래밍을 개선하는 데 도움을 줌 첫 번째 클래스 효과와 패턴을 사용하여 보일러플레이트 코드를 제거할 수 있음 타입 안전성을 통해 상대적으로 버그 없는 코드를 빠르게 작성할 수 있음 traverse/mapM의 일반화된 버전은 리스트뿐만 아니라 모든 Traversable 타입에 대해 작동하며 매우 유용함 traverse :: Applicative f => (a -> f b) -> t a -> f (t b) 형태로 사용 가능 다른 언어에서는 비슷한 효과를 얻기 위해 많은 코드를 수동으로 작성해야 했음 Haskell은 강력한 모나드를 가지고 있으며, 이는 Haskell을 더욱 절차적으로 만듦 do 블록에서 중간 변수를 사용할 수 있음 Haskell로 작성된 소프트웨어로는 ImplicitCAD가 있음 Haskell의 코드가 절차적 언어처럼 읽히지만, 부작용 함수와 함께 작업할 때의 장점을 제공함 IO 모나드와 함께 작업하는 것은 복잡하며, 다른 모나드 타입을 사용하고자 할 때 더욱 복잡해짐 >>는 <i>>의 오래된 이름이며, 두 연산자는 왼쪽 결합 연산자임 >>는 infixl 1로 정의되고 <i>>는 infixl 4로 정의되어 있어, <i>>가 >>보다 더 강하게 결합됨 Haskell의 IO a와 a는 비동기와 동기와 유사하게 느껴질 수 있음 첫 번째는 대기해야 하는 약속/미래를 반환함 다른 언어에서는 console.log("abc")와 같은 함수로 간단한 IO를 수행할 수 있음 Haskell의 IO와 다른 점이 있는지에 대한 의문이 있음 Haskell을 시도해보지 않은 사람들은 GHC 확장을 사용한 실제 Haskell이 너무 복잡하다고 느낄 수 있음 이는 Haskell에 대한 관심을 떨어뜨릴 수 있음
Hacker News 의견
Haskell의 타입 시스템은 다른 인기 있는 언어들과 비교할 때 복잡함이 있음. 특히
*>,<*>,<*와 같은 연산자들은 코드베이스 전반에 걸쳐 학습 곡선을 높임>>=와>>같은 연산자를 다시 공부해야 생산성을 유지할 수 있음Haskell은 명령형 프로그래밍을 개선하는 데 도움을 줌
traverse/mapM의 일반화된 버전은 리스트뿐만 아니라 모든Traversable타입에 대해 작동하며 매우 유용함traverse :: Applicative f => (a -> f b) -> t a -> f (t b)형태로 사용 가능Haskell은 강력한 모나드를 가지고 있으며, 이는 Haskell을 더욱 절차적으로 만듦
do블록에서 중간 변수를 사용할 수 있음Haskell로 작성된 소프트웨어로는 ImplicitCAD가 있음
Haskell의 코드가 절차적 언어처럼 읽히지만, 부작용 함수와 함께 작업할 때의 장점을 제공함
>>는<i>>의 오래된 이름이며, 두 연산자는 왼쪽 결합 연산자임>>는infixl 1로 정의되고<i>>는infixl 4로 정의되어 있어,<i>>가>>보다 더 강하게 결합됨Haskell의
IO a와a는 비동기와 동기와 유사하게 느껴질 수 있음다른 언어에서는
console.log("abc")와 같은 함수로 간단한 IO를 수행할 수 있음Haskell을 시도해보지 않은 사람들은 GHC 확장을 사용한 실제 Haskell이 너무 복잡하다고 느낄 수 있음