라쿠 (프로그래밍 언어)

라쿠(Raku, 과거 명칭: 펄 6/Perl 6)는 펄 프로그래밍 언어의 주요 버전이다. 현대의 수많은 역사적인 언어들의 요소들이 도입되어 있다. 초기 버전의 펄과의 하위 호환성이 목적은 아니지만 호환성 모드는 규격의 일부이다. 라쿠의 디자인 설계는 2000년에 시작되었다.

구현체 
Niecza는 최적화 및 효율적인 구현 연구에 초점을 맞추고 있으며 공통 언어 기반을 대상으로 한다.

예제

Hello world 프로그램 
 say 'Hello, world'

퀵소트(Quicksort) 
 # Empty list sorts to the empty list
 multi quicksort([]) { () }

 # Otherwise, extract first item as pivot...
 multi quicksort([$pivot, *@rest]) {
     # Partition.
     my @before = @rest.grep(* < $pivot);
     my @after  = @rest.grep(* >= $pivot);

     # Sort the partitions.
     (quicksort(@before), $pivot, quicksort(@after))
 }

하노이 탑(Tower of Hanoi) 
 multi sub hanoi(0, $, $, $) { }                         # No disk, so do not do anything
 multi sub hanoi($n, $a = 'A', $b = 'B', $c = 'C') {     # Start with $n disks and three pegs A, B, C
     hanoi $n - 1, $a, $c, $b;                           # firstly move top $n - 1 disks from A to B
     say "Move disk $n from peg $a to peg $c";           # then move last disk from A to C
     hanoi $n - 1, $b, $a, $c;                           # lastly move $n - 1 disks from B to C
 }

각주

외부 링크 
 
 공식 펄 6 설계 문서. 개요 (공식 언어 명세). 참조를 위해 대재앙과 계시록들이 연결되어 있지만 개요는 항상 최신으로 유지되고 있으며, 주요 권장 참조임을 유의하자.
 커뮤니티 RFC 원본 - 펄6의 역사에 관심이 있는 경우에만.
 언어와 라이브러리 문서
 Planet Perl 6 - 펄 6를 주제로 포스팅하는 블로그들의 집합
 Perl5 to Perl6 - 펄 5를 펄 6의 문법과 기능들로 변환하는 Moritz Lenz의 지침
 Present Continuous, Future Perfect - 이스라엘 네타니아에서 열렸던 오픈 소스 개발자 컨퍼런스 2006에서 래리 월과 이루어진 펄 5와 펄 6에 대한 논의 (슬라이드와 음성 녹음에 대한 링크가 HTML로 함께 보관돼있음)

펄
스크립트 언어
C로 작성된 자유 소프트웨어
자유 컴파일러와 인터프리터
다중 패러다임 프로그래밍 언어
고급 프로그래밍 언어