สำหรับความท้าทายนี้คุณจะต้องสร้างฟังก์ชั่น (ฟังก์ชั่นของคุณอาจเป็นโปรแกรมที่สมบูรณ์) ที่รับรายการเป็นอินพุตและส่งกลับค่าการเรียงสับเปลี่ยนของรายการนั้น ฟังก์ชั่นของคุณจะต้องปฏิบัติตามข้อกำหนดดังต่อไปนี้
มันจะต้องกำหนดขึ้น
การเขียนฟังก์ชั่นของคุณด้วยตัวเองจำนวนครั้งของตัวแปรควรจะสามารถรับรายการจากการเรียงลำดับใด ๆ
นี่เป็นคำถามเกี่ยวกับรหัสกอล์ฟดังนั้นคำตอบจะได้คะแนนเป็นไบต์โดยไบต์น้อยจะดีขึ้น
กฎเพิ่มเติม
คุณอาจจะใช้วิธีใดรายการ (
[Integer],[String],[[Integer]]) ตราบใดที่มัน- ต้องไม่ว่างเปล่า
- สามารถมีวัตถุที่แตกต่างอย่างน้อย 16 ค่าที่เป็นไปได้ (คุณไม่สามารถใช้ Haskell
[()]และอ้างสิทธิ์การทำงานของคุณได้id) - สามารถมีวัตถุที่ซ้ำกัน (ไม่มีชุด)
คุณอาจเขียนโปรแกรมหรือฟังก์ชั่น แต่ต้องเชื่อฟังมาตรฐาน IO
next_permutationฟังก์ชั่น

S_nเป็นวัฏจักรเท่านั้นสำหรับn<3