\sqrt{x} \sqrt[3]{x}อันด้านบนจะวาด √x (รากที่สองของ x -- โดยปรกติ รากที่สองไม่จำเป็นต้องมีเลข 2 กำกับ) ส่วนอันล่างจะวาด ∛x
รูปร่างของ syntax ที่น่าสนใจคือ ส่วนที่เป็น optional argument จะถูกเรียกขึ้นมาก่อน main argument แถมยังใช้วงเล็บแยกกันอีก นี่ทำให้การ currying เป็นไปได้อย่างง่ายดาย
\newcommand{\cbrt}{\sqrt[3]} ... \cbrt{x}จริงๆ แล้วทาง math ก็มีฟังก์ชันในแนวคิดนี้อยู่เยอะ อย่างเช่น
σx(n)
ซึ่งเขียนแบบนี้แล้วเข้าใจง่ายกว่า σ(n, x)
และยังไม่สับสนอีกว่า argument ตัวไหนที่ควรเป็น n หรือ x กันแน่แล้วถ้าอยากได้แบบนี้ใน Python บ้าง? ง่ายนิดเดียวเพราะใช้เทคนิคเดียวกับ Infinite List นั่นเอง
@singleton class sigma: def __call__(self, n, x=1): if n == 1: return 1 return product( sum((k**x)**i for i in range(v+1)) for k, v in Counter(factor(n)).items() ) def __getitem__(self, x): def partial_sigma(n): return self(n, x) return partial_sigmaคราวนี้จะเขียน
6 == sigma[1](6) - 6หรือกระทั่ง
tau = sigma[0] ... [tau(i) for i in range(return 1, 10)]ก็ย่อมได้