1P by neo 1일전 | favorite | 댓글 1개
  • 다섯 가지 독특한 Raku 기능

    • Raku는 다양한 언어 기능을 실험하는 실험실과 같음. 여러 동시성 모델과 다양한 기능을 제공하며, 각 기능이 상호작용하는 방식이 독특함.
  • Junctions

    • Junctions는 가능한 값의 중첩을 나타내며, 논리식을 표현하는 데 사용됨.
    • 모든 값을 대상으로 연산을 적용하며, boolean으로 변환하여 사용함.
    • Raku는 junctions를 통해 양화사를 우아하게 표현함.
  • Whatevers

    • *는 "whatever" 기호로 다양한 역할을 수행함.
    • 범위나 시퀀스에서 "unbound"를 의미하며, 익명 함수로 변환됨.
    • 여러 Raku 메서드가 함수를 받도록 오버로드되어 있어 유용함.
  • 정규 표현식

    • Raku는 기존의 POSIX 및 Perl 호환 정규 표현식과는 다른 새로운 구문을 제공함.
    • 정규 표현식을 조합하여 더 간단하고 가독성 있는 부분으로 나눌 수 있음.
    • 구문 분석 문법을 기본 언어 기능으로 지원함.
  • Hyperoperators

    • l>>.method는 기본적으로 map과 유사하며, 하위 목록까지 재귀적으로 내려감.
    • 이진 하이퍼 연산자는 두 목록에 대해 요소별로 연산을 적용함.
    • 여러 입력에 대해 동일한 공식을 실행하는 데 유용함.
  • Pair Syntax

    • Raku의 해시는 key => value 쌍으로 구성되며, "colon syntax"를 통해 간결하게 쌍을 지정할 수 있음.
    • :key:!key는 각각 key => Truekey => False로 매핑됨.
    • 메서드 설정을 매우 간결하게 할 수 있음.
  • 차세대 실험실: Slangs와 RakuAST

    • Slangs는 Raku 구문을 수정하는 기능으로, 루프 구문 수정, 식별자 변경 등을 가능하게 함.
    • RakuAST는 모든 Raku 표현식을 Raku 내부에서 AST로 파싱할 수 있게 함.
  • 보너스 실험

    • Raku는 "Rakudo Star" 설치를 통해 사전 설치된 서드파티 모듈 세트를 제공함.
    • 이는 큰 표준 라이브러리의 유지 관리 부담과 사용자가 적절한 패키지를 찾는 부담 사이의 훌륭한 절충안임.
  • 블로그 추천

    • Elizabeth Mattijsen과 Codesections의 블로그는 Raku 내부에 대한 많은 정보를 제공함.
    • Raku Advent Calendar는 고급 Raku 기술에 대한 훌륭한 자료임.
Hacker News 의견
  • JavaScript에서 독립적으로 구현한 구성 정규 표현식 기능을 소개하며, 이는 여러 프로젝트에 자주 사용되는 라이브러리임. 이 기능은 언어 내에서 일급 파서를 사용하는 느낌을 조금 더 가깝게 해줌. 예로 미디어 타입 파싱을 구현한 사례를 공유함

    • "templated-regular-expression"은 npm과 GitHub에서 확인 가능함
    • 프로그래밍 언어는 실제 파서를 가져야 하며, 정규 표현식을 파서로 사용해서는 안 됨. 그러나 정규 표현식을 사용할 경우, 작은 조각으로 나누는 것이 좋음
  • Raku 코드베이스를 유지보수하기 전에 산업을 떠나고 싶다는 의견이 있음

  • Raku의 속도 문제는 여전히 해결되지 않았으며, 최신 Raku는 Python 3.13보다 로그 파일을 파싱하는 데 6.5배 더 오래 걸림

  • Raku의 주요 기능은 CLI와 문법임

    • CLI는 일반적인 기능이며, Raku에 내장되어 있어 사용하기 좋음
    • 문법은 프로그래밍 언어에서 "일급 시민"으로 취급되는 것이 드물며, 객체 지향 프로그래밍을 사용해 문법을 생성할 수 있는 능력을 제공함
  • Hyper는 재귀 스킴의 더 임시적인 버전처럼 보이며, Scala의 _와 유사함. 람다를 위해 Scala를 사랑하며 모든 언어가 유사한 것을 채택해야 한다고 생각함

  • (2, 30, 4, 50).map(* + *)(32, 45)를 반환하는데, (32, 54)를 반환해야 하는지에 대한 의문이 제기됨. 이는 일부 국가에서 숫자를 표현하는 방식의 차이 때문일 수 있음

  • Perl이 이제 APL 계열 언어로의 관문 역할을 하는지에 대한 의견이 있음

  • (2,4,8...*)[17]이 262144를 반환하는 것에 놀라움을 표함

  • Raku를 실제 환경에서 사용하며, 텍스트 처리에 가장 적합한 언어라고 생각함. 파서를 구축하는 것이 매우 좋으며, LLM 텍스트 파이프라인을 만드는 데 최적의 언어가 아닌 것이 놀라움

  • 이 프로젝트를 오랫동안 지켜보았으며, 흥미롭지만 Perl 6가 이 프로젝트로 인해 크게 방해받았다는 점이 아쉬움