คำถามติดแท็ก lambda-calculus

ระบบที่เป็นทางการของศาสนจักรที่ใช้ในการคำนวณภาษาการเขียนโปรแกรมและทฤษฎีการพิสูจน์เพื่อแสดงฟังก์ชั่นที่มีประสิทธิภาพโปรแกรมและการคำนวณและการพิสูจน์

1
วิธีไม่สิ้นสุด
ฉันกำลังคิดถึงคำถามเหล่านี้: แคลคูลัสแลมบ์ดาที่พิมพ์ออกมามีความสอดคล้องและทัวริงสมบูรณ์หรือไม่ /cs/65003/if-%CE%BB-xxx-has-a-type-then-is-the-type-system-inconsistent และมีอยู่แล้วบางอย่างยากที่จะตอบคำถามที่เกี่ยวข้องกันในuntypedการตั้งค่า! โดยเฉพาะอย่างยิ่งฉันอยากรู้ว่าเราสามารถกู้ทัวริงสมบูรณ์จากการไม่เลิกด้วยวิธีต่อไปนี้: คำถาม:ให้ (บริสุทธิ์) λλ\lambda -term tttโดยไม่มีรูปแบบปกติที่อ่อนแอ, มีcombinator แบบกำหนดจุดคงที่Y tอยู่เสมอเช่นที่ Y t ( λ x . x ) = tYtYtY_tYt (λx.x)=tYt (λx.x)=t Y_t\ (\lambda x.x) = t Equalities ทั้งหมดจะถูกนำโมดูโลβηβη\beta\eta η จริง ๆ แล้วฉันสงสัยว่าคำถามรุ่นนี้จะเป็นเท็จดังนั้นเราจึงสามารถผ่อนคลายคำถามนี้กับcombinators แบบวนซ้ำที่ซึ่ง combingator แบบวนลูปYYYถูกกำหนดให้เป็นคำที่ใช้สำหรับทุกฉff Y ฉ= f ( Y' ฉ)Y f=f (Y′ f) Y\ f=f\ …

1
conversion-conversion vs extensionality ในส่วนขยายของ lambda-แคลคูลัส
ฉันมักจะสับสนกับความสัมพันธ์ระหว่าง conversion-conversion และส่วนขยาย แก้ไข: ตามความเห็นดูเหมือนว่าฉันยังสับสนเกี่ยวกับความสัมพันธ์ระหว่างความเท่าเทียมกันของมิติและความเท่าเทียมเชิงสังเกตการณ์ แต่อย่างน้อยก็ใน Agda ที่มีความเสมอภาคในมิติของฟังก์ชัน (เป็นหลัก) และสำหรับแคลคูลัสแลมบ์ดาที่พิมพ์ได้ง่ายๆ (ซึ่งมีความหมายเชิงนามธรรมอย่างสมบูรณ์ รู้สึกอิสระที่จะแก้ไขฉันในความคิดเห็นหรือคำตอบ; ฉันไม่เคยได้รับการศึกษาอย่างเป็นระบบในเรื่องเหล่านี้ ในแลมบ์ดาแคลคูลัสที่ไม่มีการพิมพ์กฎ eta จะให้ระบบการพิสูจน์เดียวกันกับกฎส่วนขยายดังที่ Barendregt พิสูจน์แล้ว (อ้างถึงคำตอบสำหรับคำถามนี้ ) ฉันเข้าใจว่าการหมายความว่าระบบพิสูจน์ด้วยกฎกทช. นั้นสมบูรณ์สำหรับการสังเกตเชิงสมดุล (จากคำตอบอื่น ๆ ที่อาจต้องใช้กฎξ-กฎนั่นคือการลดภายใต้สารยึดเกาะ IIUC ฉันไม่มีปัญหาในการเพิ่มกฎนั้นด้วย) . อย่างไรก็ตามจะเกิดอะไรขึ้นถ้าเราเปลี่ยนเป็นแคลคูลัสที่พิมพ์และเพิ่มแคลคูลัสนี้ด้วยประเภทฐานพิเศษและรูปแบบการแนะนำและการกำจัดที่สอดคล้องกัน? เรายังคงสามารถเขียนระบบพิสูจน์ที่สมบูรณ์เพื่อความเท่าเทียมเชิงสังเกตการณ์ได้หรือไม่? ฉันจะพูดคุยเกี่ยวกับระบบพิสูจน์ในรูปแบบของความหมายซึ่งเป็นจริงตามพื้นฐานของการเขียนโปรแกรมภาษา (FPL) ของมิตเชลล์; ระบบพิสูจน์ / สัจพจน์ความหมายที่เป็นจริงกำหนดความเท่าเทียมกันของโปรแกรม คำถามที่ 1 : ทฤษฎีบทของ Barendregt ขยายไปถึง STLC หรือไม่? การเทียบเท่า extension เทียบเท่ากับส่วนขยายในบริบทนั้นหรือไม่ ฉันกำลังเรียกดูการสนทนาของ PCF ของ …

1
การลดชั้นในสุดอยู่ตลอดใน ty-แคลคูลัสที่ไม่มีการพิมพ์หรือไม่?
(ฉันได้ถามเรื่องนี้ที่ MathOverflow แล้ว แต่ไม่มีคำตอบอยู่ที่นั่น) พื้นหลัง ในแคลคูลัสแลมบ์ดา untyped คำที่อาจจะมี redexes จำนวนมากและทางเลือกที่แตกต่างกันเกี่ยวกับการเป็นที่หนึ่งในการลดอาจให้ผลลัพธ์ที่แตกต่างกันอย่างดุเดือด (เช่นซึ่งในทางหนึ่ง ขั้นตอน ( -) ลดทั้งหรือตัวเอง) ที่แตกต่างกัน (ลำดับ) ทางเลือกในการที่จะลดจะเรียกว่ากลยุทธ์การลด คำกล่าวจะnormalizingถ้ามีกลยุทธ์การลดลงซึ่งนำไปแบบปกติ คำกล่าวจะnormalizing อย่างยิ่งถ้ากลยุทธ์ลดทุกนำ( λ x . y) ( ( λ x . x x ) λ x . x x )(λx.Y)((λx.xx)λx.xx)(\lambda x.y)((\lambda x.xx)\lambda x.xx)ββ\betat t t tYYyเสื้อเสื้อtเสื้อเสื้อtเสื้อเสื้อtเสื้อเสื้อtสู่รูปแบบปกติ (ฉันไม่ได้กังวลเกี่ยวกับสิ่งที่ แต่การบรรจบกันรับประกันว่ามีความเป็นไปได้มากกว่าหนึ่งไม่ได้) กลยุทธ์การลดการกล่าวถึงเป็นnormalizing (และอยู่ในความรู้สึกบางอย่างที่ดีที่สุดที่เป็นไปได้) ถ้าเมื่อใดก็ตามมีรูปแบบปกติแล้วว่าของที่เราจะจบลง …

1
การสร้างลักษณะความเท่าเทียมกันที่มองไม่เห็นโดยกฎการรวมตัวกันใหม่
เพื่อตอบคำถามอื่น ๆส่วนต่อขยายของทฤษฎีเบต้าของแลมบ์ดาแคลคูลัส Evgenij เสนอคำตอบ: เบต้า + กฎ {s = t | s และ t ถูกปิดเงื่อนไขที่แก้ไม่ได้} ที่ระยะMคือแก้ปัญหาได้ถ้าเราสามารถหาลำดับของข้อตกลงดังกล่าวว่าเอ็มแอพลิเคชันให้กับพวกเขา 's เท่ากับผม คำตอบของ Evgenij ให้ทฤษฎีที่เท่าเทียมกันเหนือแลมบ์ดาแคลคูลัส แต่ไม่มีใครที่โดดเด่นด้วยระบบการลดเช่นชุดไหลมารวมกันของกฎการเขียนซ้ำซ้ำ ลองเรียกความเท่าเทียมกันที่มองไม่เห็นเหนือทฤษฎีของแคลคูลัสแลมบ์ดาซึ่งเป็นระบบการลดที่เปรียบเสมือนชุดของแลมบ์ดาที่ไม่สามารถแก้ไขได้ แต่ไม่เพิ่มสมการใหม่ที่เกี่ยวข้องกับคำที่แก้ไขได้ มีอะไรที่เทียบเท่ากับทฤษฎีเบต้าของแคลคูลัสแลมบ์ดาหรือไม่? Postscriptตัวอย่างที่แสดงถึงการเทียบเท่าที่มองไม่เห็น แต่ไม่ไหลมารวมกัน ให้M = (λx.xx)และN = (λx.xxx)สองคำที่ไม่สามารถแก้ไขได้ การเพิ่มกฏการเขียนNNใหม่ไปยังMMทำให้เกิดความเท่าเทียมกันที่มองไม่เห็นที่มีMM = NNแต่มีคู่วิกฤติที่ไม่ดีโดยที่NNลดทั้งMMและMMNซึ่งแต่ละคู่มีหนึ่งการเขียนใหม่ที่พร้อมใช้งาน

3
ผลกระทบเชิงลบของการขยาย CIC กับสัจพจน์คืออะไร?
มันเป็นความจริงหรือไม่ที่การเพิ่มสัจพจน์ใน CIC อาจมีอิทธิพลทางลบในเนื้อหาการคำนวณของคำจำกัดความและทฤษฎีบท? ผมเข้าใจว่าในพฤติกรรมปกติของทฤษฎีใด ๆ ระยะปิดจะลดลงในฟอร์มปกติที่ยอมรับเช่นถ้าเป็นจริงแล้วnต้องลดระยะของรูปแบบ( s ยูคค. . . ( s U คค( 0 ) ) ) แต่เมื่อกล่าวถึงสัจพจน์ - พูดถึงความจริงของฟังก์ชันส่วนขยาย- เราเพียงแค่เพิ่มค่าคงที่ใหม่ให้กับระบบn:Nn:Nn : \mathbb{N}nnn(succ...(succ(0)))(succ...(succ(0)))(succ ... (succ (0)))funext funext:Πx:Af(x)=g(x)→f=gfunext:Πx:Af(x)=g(x)→f=g funext : \Pi_{x : A} f (x) = g (x) \to f = g นั่นจะเป็นเพียง "วิเศษ" สร้างหลักฐานของจากการพิสูจน์ของΠ x : A f ( …

2
คุณสมบัติ Church-Rosser สำหรับแคลคูลัสแลมบ์ดา
มันเป็นที่รู้จักกันดีว่าคริสตจักรร็อคุณสมบัติถือสำหรับ -reduction ในเพียงแค่พิมพ์แลมบ์ดาแคลคูลัส นี่ก็หมายความว่าแคลคูลัสนั้นสอดคล้องกันในแง่ที่ว่าไม่ใช่ทุกสมการที่เกี่ยวข้องกับλ -terms เป็นอนุพันธ์: ตัวอย่างเช่นK ≠ Iเนื่องจากพวกเขาไม่ได้ใช้รูปแบบปกติร่วมกันβηβη\beta \etaλλ\lambda≠≠\neq เป็นที่รู้จักกันว่าหนึ่งสามารถขยายผลให้คู่ที่สอดคล้องกับประเภทผลิตภัณฑ์ แต่ฉันสงสัยว่าถ้าใครสามารถขยายผลสำหรับแคลคูลัสแลมบ์ดาที่พิมพ์ได้อย่างน่าเชื่อถือ (อาจ) ด้วยโพลีมอร์ฟิคประเภทเช่นแคลคูลัสของสิ่งก่อสร้าง? การอ้างอิงใด ๆ ก็จะดีมาก! ขอบคุณ

1
คำศัพท์แลมบ์ดาแคลคูลัสที่ลดลงไป
ในภารกิจต่อเนื่องของฉันเพื่อพยายามเรียนรู้แลมด้าแคลคูลัส Hindley & Seldin "แลมบ์ดา - แคลคูลัสและผู้แนะนำ Combinators" กล่าวถึงบทความต่อไปนี้(โดย Bruce Lercher)ซึ่งพิสูจน์ให้เห็นว่านิพจน์ที่สามารถลดได้ซึ่งเป็นแบบเดียวกัน คือ )( λ x . x x ) ( λ x . x x )(λx.xx)(λx.xx)(\lambda x.xx)(\lambda x.xx) ในขณะที่ฉันเชื่อผลลัพธ์ฉันจะไม่ทำตามข้อโต้แย้งเลย มันค่อนข้างสั้น (น้อยกว่าหนึ่งย่อหน้า) คำอธิบายใด ๆ ที่จะได้รับการต้อนรับมากที่สุด ขอบคุณ ชาร์ลี

2
อะไรคือกฎเท่าเทียมกันสำหรับประเภทศูนย์?
ข้อจำกัดความรับผิดชอบ : ในขณะที่ฉันสนใจทฤษฎีประเภทฉันไม่คิดว่าตัวเองเป็นผู้เชี่ยวชาญด้านทฤษฎีประเภท ในแคลคูลัสแลมบ์ดาที่พิมพ์ไว้ชนิด zeroไม่มีตัวสร้างและตัวกำจัดที่ไม่ซ้ำกัน: Γ⊢M:0Γ⊢initial(M):AΓ⊢M:0Γ⊢initial(M):A\frac{\Gamma \vdash M \colon 0}{\Gamma \vdash initial (M) \colon A} จากจุด denotational ในมุมมองของสมการที่ initial(M1)=initial(M2)initial(M1)=initial(M2)initial (M_1) = initial(M_2)จะเห็นได้ชัด (เมื่อชนิดทำให้ความรู้สึก) แต่จากมุมมองที่ฉันยังสามารถอนุมานว่าเมื่อM,M′:0M,M′:0M,M' \colon 0แล้ว: M=M′M=M′M = M' ' การหักนี้ดูแข็งแกร่งขึ้นถึงแม้จะมีรุ่นใดรุ่นหนึ่งที่แสดงว่ามันทำให้ฉันหลง (ฉันมีสัญชาตญาณเชิงทฤษฎีที่พิสูจน์ว่า: มันไม่สำคัญว่าคุณใช้ความขัดแย้งเพื่อให้ได้มาซึ่งพลเมือง แต่อาจมีหลักฐานที่แตกต่างกัน) ดังนั้นคำถามของฉันคือ: อะไรคือกฎหมายสมการมาตรฐานสำหรับประเภทศูนย์? มีใครบ้างที่จำแนกเป็นηη\etaหรือββ\betaกฎหมาย?

2
แลมบ์ดาแคลคูลัสเป็นระบบการเขียนศัพท์เฉพาะประเภทอย่างไร
ตอนนี้เราจะเห็นว่าคริสตจักร ที่เกี่ยวข้องกับเพียงแค่พิมพ์แลมบ์ดาแคลคูลัส ที่จริงดูเหมือนว่าเขาอธิบายแคลคูลัสแลมบ์ดาเพียงพิมพ์เพื่อลดความเข้าใจผิดเกี่ยวกับแลมบ์ดาแคลคูลัส ตอนนี้เมื่อจอห์นแมคคาร์ที่สร้างเสียงกระเพื่อม - เขาตามมันบนแลมบ์ดาแคลคูลัส นี้เกิดจากการเข้ารับการรักษาของตัวเองเมื่อเขาตีพิมพ์"ฟังก์ชั่นซ้ำของการแสดงออกเชิงสัญลักษณ์และการคำนวณของพวกเขาโดยเครื่องฉัน" คุณสามารถอ่านได้ที่นี่ ตอนนี้เรารู้แล้วว่าที่แกนกลางของMathematicaเป็นระบบที่เหมือนเสียงกระเพื่อมแต่แทนที่จะเป็นพื้นฐานของแลมบ์ดาแคลคูลัสเพียงอย่างเดียวมันก็ขึ้นอยู่กับระบบการเขียนคำซ้ำ ที่นี่ผู้เขียนระบุรัฐ: Mathematica เป็นระบบการเขียนคำใหม่ซึ่งเป็นแนวคิดทั่วไปมากกว่าแลมบ์ดาแคลคูลัสที่อยู่เบื้องหลัง Lisp ดูเหมือนว่าแลมบ์ดาแคลคูลัสเป็นส่วนเล็ก ๆ ของหมวดหมู่ทั่วไปที่กว้างขึ้น (การเปิดตาค่อนข้างเป็นความคิดว่านี่เป็นแนวคิดพื้นฐานมากกว่า) ฉันกำลังพยายามอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้เพื่อให้ได้มุมมอง คำถามของฉันคือแลมบ์ดาแคลคูลัสเป็นระบบคำศัพท์เฉพาะประเภทอย่างไร

1
การเรียก / cc ของ Scheme สามารถใช้โครงสร้างการไหลของการควบคุมที่รู้จักทั้งหมดได้หรือไม่
หน้า"แผนการขั้นสูง: บาง Naughty Bits"ระบุ: Continuations เป็นโครงสร้างการควบคุมการไหลที่ทรงพลังซึ่ง อาจมีโครงสร้างการไหลของการควบคุม [... ] อื่นเกือบ ผมคิดว่าโครงการของcall/ccถูกที่เกี่ยวข้อง (*) ปีเตอร์ร่อนลงของผู้ประกอบการเจสามารถนำมาใช้ในการดำเนินการใด ๆโครงสร้างการควบคุมการไหลที่รู้จักกัน? ด้วย "โครงสร้างการควบคุมการไหล" ฉันกำลังคิดถึงคำอธิบายของวิกิพีเดียเป็นพิเศษเช่นข้อยกเว้น coroutines เธรดสีเขียวและอื่น ๆ มีตัวอย่างของโครงสร้างการควบคุมการไหลที่ไม่สามารถนำไปใช้งานได้call/ccหรือไม่? (*) ฉันไม่สามารถที่จะขุดกระดาษใด ๆ ที่ระบุว่าcall/ccมีประสิทธิภาพเท่ากับตัวดำเนินการ J บทความโดย Felleisen (ซึ่งฉันไม่ได้อ่านและยอมรับว่ามีปัญหาในการทำความเข้าใจอย่างเต็มที่) ตรวจสอบเรื่องนี้และดูเหมือนจะสรุปได้ว่าถึงแม้ว่าพวกเขาจะอยู่ในชั้นเรียนที่มีความซับซ้อนแตกต่างกันก็ตาม (โปรดทราบว่าฉันได้อัปเดตคำถามตามความคิดเห็นด้านล่าง) ปรับปรุง จากคำตอบที่ยอดเยี่ยมโดย @Neel ด้านล่างฉันได้ดูไซต์ที่แสดงความคิดเห็นเกี่ยวกับความต่อเนื่องที่คั่นและไม่ จำกัดและดูเหมือนว่าในขณะที่การcall/ccไม่ถูก จำกัด นั้นไม่เพียงพอ ในขณะที่ชั้นแรกที่คั่นต (ชอบshift/reset) สามารถนำมาใช้ดูเหมือนว่าจะแสดงโครงสร้างการควบคุมการไหลใด ๆ

1
การขยายตัวของกทพ. ในรูปแบบแลมบ์ดาแคลคูลัส
Klop, van Oostrom และ de Vrijer มีกระดาษบนแคลคูลัสแลมบ์ดาที่มีลวดลาย http://www.sciencedirect.com/science/article/pii/S0304397508000571 ในบางกรณีรูปแบบเป็นต้นไม้ของตัวแปร - แม้ว่าฉันแค่คิดว่ามันเป็น tuple ที่ซ้อนกันของตัวแปรเช่น ((x, y), z), (t, s) ในกระดาษพวกเขาแสดงให้เห็นว่าหากรูปแบบเชิงเส้นในแง่ที่ว่าไม่มีตัวแปรในรูปแบบซ้ำแล้วกฎ (\p . m) n = m [n/p] โดยที่ p คือรูปแบบผันแปรและ n คือ tuple ของคำศัพท์ที่มีรูปร่างเดียวกับ p คือไหลมารวมกัน ฉันอยากรู้ว่าถ้ามีการพัฒนาที่คล้ายกันในวรรณคดีสำหรับแคลคูลัสแลมบ์ดาที่มีรูปแบบและกฎการทางพิเศษแห่งประเทศไทยเพิ่มเติม โดยเฉพาะอย่างยิ่งโดยกทพ. ฉันหมายถึง m = \lambda p . m p เพิ่มเติมโดยตรงฉันอยากรู้ว่าคุณสมบัติเช่นแคลคูลัสแลมบ์ดาจะมี ตัวอย่างเช่นมันไหลมารวมกันไหม? มันบังคับให้ปิดประเภทการจัดหมวดหมู่เพราะบังคับให้คุณสมบัตินั้น m p …

2
แลมบ์ดาแคลคูลัสจับความคิดในการคำนวณได้ง่ายเพียงใด?
ฉันพยายามคลุมศีรษะด้วยอะไรทำไมและวิธีของ calculus แต่ฉันไม่สามารถเข้ามาจับได้ด้วย "ทำไมมันถึงทำงานได้"?λλ\lambda "สังหรณ์ใจ" ฉันได้รูปแบบการคำนวณของ Turing Machines (TM) แต่สกัดกั้นทำให้ฉันสับสนλλ\lambda สมมติว่า TM ไม่มีตัวตน - แล้วเราจะ "เชื่อมั่น" อย่างชาญฉลาดเกี่ยวกับความสามารถของ calculus ในการจับภาพความคิดในการคำนวณนี้ได้อย่างไร การมีฟังก์ชั่นมากมายสำหรับทุกสิ่งและความสามารถในการเรียงความของพวกเขาบ่งบอกถึงการคำนวณได้อย่างไร ฉันหายไปนี่อะไร ฉันอ่านบทความของ Alonzo Church แต่ฉันยังสับสนและมองหาความเข้าใจที่มากกว่าเดิมλλ\lambda

6
ฟังก์ชั่นที่แคลคูลัสแลมบ์ดาไม่สามารถคำนวณได้
ฉันแค่อยากรู้ตัวอย่างของฟังก์ชั่นที่สามารถคำนวณได้โดยแคลคูลัสแลมบ์ดาที่ไม่ได้พิมพ์ ในฐานะที่ฉันเป็นผู้เริ่มต้นการกล่าวซ้ำ ๆ ของข้อมูลพื้นฐานบางอย่างจะได้รับการชื่นชม ขอบคุณ แก้ไข: โดย lambda calculi ที่พิมพ์ฉันตั้งใจจะรู้เกี่ยวกับ System F และแคลคูลัสแลมบ์ดาที่พิมพ์ง่าย ตามฟังก์ชั่นฉันหมายถึงฟังก์ชันใด ๆ ที่คำนวณได้ของทัวริง

1
หลักฐานการลดลงของ Barendregt สำหรับ
ฉันพบปัญหาในการพิสูจน์การลดเรื่องของ Barendregt (Thm 4.2.5 ของแลมบ์ดานิ่วประเภท ) ขั้นตอนสุดท้ายของการพิสูจน์ (หน้า 60) พูดว่า: "และด้วยเหตุนี้โดย Lemma 4.1.19 (1), ".Γ,x:ρ⊢P:σ′Γ,x:ρ⊢P:σ′\quad\Gamma,x:\rho\vdash P:\sigma' แต่ตามบทแทรก 4.1.19 (1) มันควรจะเป็นตั้งแต่ทดแทนจะทำให้บริบททั้งไม่เพียง แต่จะx : ρ ' .Γ[α⃗ :=τ⃗ ],x:ρ⊢P:σ′Γ[α→:=τ→],x:ρ⊢P:σ′\Gamma[\vec{\alpha}:=\vec{\tau}],x:\rho\vdash P:\sigma'x:ρ′x:ρ′x:\rho' ผมคิดว่าวิธีการแก้ปัญหามาตรฐานอาจจะเป็นอย่างใดพิสูจน์ได้ว่าแต่ผมไม่แน่ใจว่าα⃗ ∉FV(Γ)α→∉FV(Γ)\vec{\alpha}\notin FV(\Gamma) ฉันมีหลักฐานที่ทำให้มันง่ายขึ้นโดยการผ่อนคลายบทแทรกของ abstractions แต่เมื่อเร็ว ๆ นี้ฉันพบว่ามีข้อผิดพลาดและหลักฐานของฉันผิดดังนั้นฉันไม่แน่ใจว่าจะแก้ปัญหานี้ได้อย่างไร ใครช่วยกรุณาบอกฉันว่าฉันหายไปไหน

1
ตัวอย่างที่คำแลมบ์ดาปกติที่เล็กที่สุดนั้นไม่เร็วที่สุด
ให้ของλ -terms ถูกนิยามดังนี้:sizesizesizeλλ\lambda ,size(x)=1size(x)=1size(x) = 1 size(λx.t)=size(t)+1size(λx.t)=size(t)+1size(λx.t) = size(t) + 1 , size(ts)=size(t)+size(s)+1size(ts)=size(t)+size(s)+1size(t s) = size(t) + size(s) + 11 ปล่อยให้ความซับซ้อนของ -termถูกกำหนดเป็นจำนวนการลดเบต้าแบบขนานจากเป็นรูปแบบปกติ (ใช้ผู้ประเมินที่ดีที่สุดในแง่ความรู้สึกของ Levy)λλ\lambdattttxtxt x ฉันกำลังมองหาตัวอย่างของปกติ สองตัวสำหรับฟังก์ชั่นเดียวกันโดยที่คำที่ใหญ่กว่ามีความซับซ้อนต่ำกว่าλλ\lambda ... แก้ไขเพื่อความชัดเจน เนื่องจากดูเหมือนว่ามันไม่ชัดเจนว่าฉันขออะไรฉันจะลองยกตัวอย่าง มักจะมีความเชื่อว่าคำจำกัดความ "ไร้เดียงสา" / "ง่ายที่สุด" ของฟังก์ชั่นนั้นช้าและไม่เหมาะสม ประสิทธิภาพที่ดีขึ้นจะเพิ่มความซับซ้อนของคำศัพท์เนื่องจากคุณต้องการเพิ่มโครงสร้างข้อมูลสูตร ฯลฯ ตัวอย่างที่ยอดเยี่ยมคือfibonacciซึ่งสามารถนิยามได้ว่า "ไร้เดียงสา" ดังนี้: -- The fixed fibonacci definition fib_rec fib n = if …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.