ภาพรวมของ Tree Calculus
- Tree Calculus เป็นระบบที่สมบูรณ์แบบทัวริงซึ่งมีตัวดำเนินการและอรรถศาสตร์ที่เรียบง่าย ซึ่งจับแก่นแท้ของการคำนวณได้
- สามารถซีเรียลไลซ์และดีซีเรียลไลซ์ฟังก์ชันได้ และคอมไพล์ไปเป็นรูปแบบต่าง ๆ ได้
- มีความสามารถในการทำการวิเคราะห์โปรแกรม ตรวจสอบชนิด คอมไพล์ ปรับแต่งประสิทธิภาพ และอื่น ๆ ได้ภายในตัวโปรแกรมเอง
การทำให้ฟังก์ชันและเมตาทฤษฎีเป็นประชาธิปไตย
- อธิบายความสามารถของ Tree Calculus ผ่านตัวอย่างของฟังก์ชันจัดการสตริง
- การตรวจสอบชนิดสามารถทำได้อย่างง่ายดายด้วยการเรียกฟังก์ชัน และยังสามารถปรับแต่งประสิทธิภาพได้ด้วย
- สามารถตรวจสอบประสิทธิภาพได้โดยเปรียบเทียบจำนวนขั้นตอนการประเมินผลและจำนวนโหนดของต้นไม้ก่อนและหลังการปรับแต่ง
ข้อดีของ Intensionality
- มีความสามารถในการสะท้อนโปรแกรมได้โดยไม่ต้องมีการ quote เพื่อการวิเคราะห์โปรแกรม
- สามารถทำการตรวจสอบแบบสแตติกและไดนามิกได้ด้วยการเรียกฟังก์ชันเดียวกัน
- สามารถคอมไพล์และดีพลอยได้จากภายในตัวโปรแกรมเอง จึงมอบสภาพแวดล้อม REPL ที่ทรงพลัง
ความทรงพลังของ Tree Calculus
- Tree Calculus สมบูรณ์แบบทัวริง และไม่มีการแบ่งแยกระหว่างโปรแกรมกับการเข้ารหัสของมัน
- การเข้ารหัสข้อมูลและอัลกอริทึมถูกปรับแต่งแบบไม่สมมาตร
- ฟังก์ชันจัดการลิสต์ทั่วไปจะแทนด้วยต้นไม้ไบนารีที่มีโหนดหลายร้อยโหนด
ความกระชับ
- ไวยากรณ์เชิงนามธรรมของ Tree Calculus นั้นเรียบง่าย และค่าต่าง ๆ ถูกแทนด้วยต้นไม้ไบนารีที่ไม่มีป้ายกำกับ
- สามารถบูตสแตรปแนวคิดต่าง ๆ ได้อย่างรวดเร็วโดยไม่ต้องใช้มาตรฐานอย่าง JSON, UTF8 เป็นต้น
- เหมาะสำหรับการศึกษา และสามารถค่อย ๆ แนะนำการทำ abstraction และการสร้างแบบจำลองได้
การพกพา
- ไวยากรณ์และอรรถศาสตร์ของ Tree Calculus ถูกลดทอนให้เหลือน้อยที่สุด และไม่ผูกกับแพลตฟอร์ม
- สามารถเขียนอินเทอร์พรีเตอร์ได้อย่างง่ายดายในทุกแพลตฟอร์มหรือภาษาโปรแกรมมิง
- สามารถบูตสแตรปความสามารถทั้งหมดของ Tree Calculus ได้จากทุกที่ จึงเหมาะเป็นภาษาคอนฟิกในรูปแบบโค้ดสำหรับระบบที่หลากหลาย
1 ความคิดเห็น
ความเห็นบน Hacker News
Tree Calculus เป็นแนวคิดที่น่าสนใจมาก และมีนัยสำคัญอีกมากนอกเหนือจากเว็บไซต์นี้ อย่างไรก็ตาม น่าเสียดายที่เว็บไซต์ไม่ได้กล่าวถึง Prof. Barry Jay ผู้เป็นทั้งผู้สร้างและผู้เขียน หนังสือของเขาดูได้บน GitHub
Tree Calculus ดูเป็นแนวคิดที่เจ๋งมาก แต่ต้องการคำอธิบายที่เข้าใจง่ายกว่านี้ สงสัยว่ามีเวอร์ชันสำหรับผู้เริ่มต้นหรือไม่
หน้าแรกใช้วลี "Democratizing Functions" และ "Democratizing Metatheory" ทำให้สงสัยว่าการใช้คำนี้เหมาะสมหรือไม่
ลองทำภาพเพื่อแสดงกฎการลดรูปเชิงตรรกะของ Tree Calculus ให้เข้าใจได้ด้วยสายตา ซึ่งอาจมีประโยชน์สำหรับคนที่คิดเป็นภาพ
สงสัยว่ามีคนที่แกล้งทำเป็นเข้าใจเนื้อหานี้แล้วกดโหวตหรือไม่
อยากรู้ว่าช่วยอธิบายได้ไหมว่า Tree Calculus ต่างจาก Lisp หรือ Forth อย่างไร ไม่ได้ถามเพื่อวิจารณ์ แต่ถามเพื่อความเข้าใจ
อธิบายแนวคิดพื้นฐานของ Tree Calculus ผ่านตัวอย่างโค้ด Python
Leaf,Stem,Forkและใช้ฟังก์ชันapplyเพื่อทำตรรกะshowเพื่อแสดงผลลัพธ์พยายามแปลง Z combinator จาก SKI ไปเป็น Tree Calculus โดยใช้ตัวอย่าง lambda calculus เพื่อพิมพ์ต้นไม้ออกมา
แชร์ผลการทำภาพกฎของ Tree Calculus เป็น pattern matching ของต้นไม้ไบนารี
เป็นเรื่องดีมากที่ Johannes ได้ทดลองกับ Tree Calculus และแสดงให้เห็นอย่างชัดเจนถึงความเป็นไปได้ที่ในหนังสือของเขาบน GitHub เคยเพียงบอกเป็นนัยไว้เท่านั้น ตอนนี้มี Tree Calculus แบบมี type แล้ว และเริ่มเขียนบล็อก