คำถามติดแท็ก lisp

เสียงกระเพื่อมเป็น (ภาษาตระกูล) วัตถุประสงค์การใช้งานทั่วไปภาษาการเขียนโปรแกรม (s), ขึ้นอยู่กับแคลคูลัสแลมบ์ดาและมีความสามารถในการจัดการรหัสแหล่งที่มาเป็นโครงสร้างข้อมูล

1
วิธีการใช้สาขาและผูกพันในภาษาการเขียนโปรแกรมการทำงานหรือไม่
ฉันพยายามเขียนสาขาและค้นหาขอบเขตในชุดของฟังก์ชั่นทั้งหมด f: D -> R ซึ่งขนาดโดเมนเล็ก (| D | ~ 20) และช่วงนั้นใหญ่กว่ามาก (| R | ~ 2 ^ 20 ) ตอนแรกฉันคิดวิธีแก้ปัญหาต่อไปนี้ (builder (domain range condlist partial-map) (let ((passed? (check condlist partial-map))) (cond ((not passed?) nil) (domain (recur-on-first domain range condlist partial-map '())) (t partial-map)))) (recur-on-first (domain range condlist partial-map ignored) …

3
บนเส้นทางสู่การตรัสรู้: Scheme, Common Lisp, Clojure? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน8 ปีที่ผ่านมา ผู้คนจำนวนมากฉลาดกว่าที่ฉันเขียนไว้เสมอเมื่อคุณเรียนรู้ Lisp มันทำให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้นเพราะคุณ "เข้าใจ" บางทีทั้งหมดที่ฉันได้ยินเกี่ยวกับเสียงกระเพื่อมเปลี่ยนชีวิตของคุณเป็นเพียงเรื่องตลกขนาดใหญ่ในมือใหม่ แต่ฉันคิดว่าไม่มีอันตรายใด ๆ ในการรู้มากขึ้นเกี่ยวกับโลกแม้ว่าฉันจะพบว่าฉันถูกส่งไปหลังจากนกปากซ่อมหรืออะไรบางอย่าง . ฉันต้องการติดตามหนังสือ SICP และหรือ ANSI Common LISP แต่ในเวลาเดียวกันฉันกำลังศึกษาภาษาถิ่นและการใช้งานที่ฉันสามารถใช้ในโครงการส่วนบุคคลได้ SICP มุ่งเน้นไปที่ Scheme ดังนั้นจึงเป็นการลงคะแนนเสียงครั้งใหญ่ พอลเกรแฮมกล่าวว่าหากเขาจะสอนมือใหม่เขาจะทำใน Scheme แต่ฟังดูเหมือน Scheme ยังด้อยกว่า Common LISP แต่แล้วก็มี Clojure - ซึ่งฉันบอกว่าถูก จำกัด ด้วยวิธีการ แต่มีประโยชน์มากกว่าสำหรับคนอื่น ๆ (ห้องสมุด JVM) ดูเหมือนว่าฉันจะสามารถเข้าถึงวัสดุ Scheme …

5
เหตุใดชุมชน Lisp จึงต้องการสะสมวงเล็บทั้งหมดเมื่อสิ้นสุดฟังก์ชัน
เหตุใดชุมชน Lisp จึงต้องการสะสมวงเล็บทั้งหมดเมื่อสิ้นสุดฟังก์ชัน: (defn defer-expensive [cheap expensive] (if-let [good-enough (force cheap)] good-enough (force expensive))) ทำไมไม่ใช้การประชุมเช่น C หรือ Java โอเค Lisp มีอายุมากกว่าภาษาเหล่านั้นมาก แต่ฉันกำลังพูดถึง Lispers ร่วมสมัย (defn defer-expensive [cheap expensive] (if-let [good-enough (force cheap)] good-enough (force expensive) ) ) หมายเหตุ: ข้อมูลโค้ดมาจากหนังสือ "ความสุขของ Clojure"

5
ภาษาที่ใช้ในการเขียนโปรแกรม“ ให้” ปรากฏขึ้นเป็นครั้งแรก?
ฉันสงสัยเกี่ยวกับต้นกำเนิดของ "การปล่อย" ที่ใช้ใน Lisp, Clojure และ Haskell มีใครรู้บ้างว่าภาษานั้นปรากฏในภาษาใดเป็นอันดับแรก

6
แมโคร Lisp มีประโยชน์อย่างไร
Common Lisp ช่วยให้คุณสามารถเขียนมาโครที่ทำสิ่งแปลงแหล่งที่คุณต้องการ Scheme ช่วยให้คุณมีระบบจับคู่รูปแบบที่ถูกสุขลักษณะที่ให้คุณทำการแปลงได้เช่นกัน มาโครมีประโยชน์อย่างไรในทางปฏิบัติ Paul Graham กล่าวในการเอาชนะค่าเฉลี่ยที่: ซอร์สโค้ดของเครื่องมือแก้ไข Viaweb น่าจะเป็นมาโครประมาณ 20-25% สิ่งที่ผู้คนทำลงเอยด้วยมาโครจริง ๆ แล้วมีอะไรบ้าง?
22 lisp  scheme  macros 

3
มีแบบฝึกหัดมาตรฐานหรือหนังสือเกี่ยวกับแนวคิดการเขียนโปรแกรมใช้งานได้หรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา มาจากพื้นหลังการเขียนโปรแกรมตามขั้นตอน / OO ฉันมักจะเขียนโปรแกรม Scheme ตามขั้นตอน ฉันจะถูกขัดจังหวะในการเรียนรู้โครงการหรือเสียงกระเพื่อมในการทำงานจากพื้นดินขึ้นมาเพื่อรีเซ็ตความคิดของโปรแกรมเมอร์ของฉัน มีแบบฝึกหัดหรือหนังสือที่มีมาตรฐาน de-facto สำหรับการอธิบายวิธีปฏิบัติที่ดีที่สุดวิธีการออกแบบและข้อมูลที่เป็นประโยชน์อื่น ๆ เกี่ยวกับแนวคิดการเขียนโปรแกรมการทำงาน? หนังสือเล่มไหนที่ทำให้มันพิเศษ?

4
ถ้ามี LISP จะทำให้การใช้ระบบมาโครง่ายขึ้นได้อย่างไร
ฉันเรียนรู้ Scheme จากSICPและฉันได้รับความประทับใจว่าส่วนใหญ่ของสิ่งที่ทำให้ Scheme และยิ่งกว่านั้น LISP พิเศษคือระบบมาโคร แต่เนื่องจากมาโครถูกขยายในเวลาคอมไพล์ทำไมคนไม่สร้างระบบมาโครที่เทียบเท่าสำหรับ C / Python / Java / อะไร ตัวอย่างเช่นเราสามารถผูกpythonคำสั่งexpand-macros | pythonหรืออะไรก็ได้ รหัสจะยังสามารถพกพาได้สำหรับผู้ที่ไม่ได้ใช้ระบบมาโครใครจะขยายมาโครก่อนที่จะเผยแพร่รหัส แต่ฉันไม่รู้อะไรเลยนอกจากเทมเพลตใน C ++ / Haskell ซึ่งฉันรวบรวมไม่เหมือนกันจริงๆ ถ้ามี LISP จะทำให้การใช้ระบบมาโครง่ายขึ้นได้อย่างไร

3
แมโครของ LISP นั้นดีกว่า“ ความสามารถ” ของรูบี้ในการสร้าง DSL
หนึ่งในสิ่งที่ทำให้ Ruby shine คือความสามารถในการสร้าง Domain Specific Languages ​​ที่ดีขึ้นเช่น ซินาตร้า rspec คราด Ruby on Rails 'ActiveRecord แม้ว่าเราสามารถทำซ้ำไลบรารี่เหล่านี้ใน LISP ผ่านมาโครได้ แต่ฉันคิดว่าการติดตั้งของรูบี้นั้นสง่างามกว่า อย่างไรก็ตามฉันคิดว่ามีบางกรณีที่แมโครของ LISP นั้นสามารถทำได้ดีกว่ารูบี้แม้ว่าฉันจะไม่สามารถคิดได้ ดังนั้นมาโครของ LISP ในพื้นที่ใดที่ดีกว่า "ความสามารถ" ของรูบี้ในการสร้าง DSL ถ้ามี? ปรับปรุง ฉันถามสิ่งนี้เพราะภาษาการเขียนโปรแกรมที่ทันสมัยกำลังเข้าใกล้ LISP เอกพจน์เช่น C มีตัวประมวลผลก่อนการขยายตัวของแมโครแม้ว่าจะเป็นแบบดั้งเดิมและมีแนวโน้มที่จะเกิดข้อผิดพลาด C # มีคุณสมบัติแม้ว่าจะเป็นแบบอ่านอย่างเดียวซึ่งเปิดเผยผ่านการสะท้อนกลับ Python ได้เพิ่มมัณฑนากรที่สามารถปรับเปลี่ยนพฤติกรรมของฟังก์ชั่น (และคลาสสำหรับ v 3.0) แต่รู้สึกค่อนข้าง จำกัด Ruby TMTOWTDI ที่ทำให้ DSL สง่างามหากใช้งานอย่างระมัดระวัง …
21 ruby  lisp  dsl 

5
มีหลักฐานว่าเสียงกระเพื่อมจริงดีกว่าภาษาอื่น ๆ ที่ปัญญาประดิษฐ์? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ดูเหมือนว่าจะมีความเชื่อมานาน (โดยส่วนใหญ่ที่ไม่ใช่เสียงกระเพื่อม) ที่เสียงกระเพื่อมดีกว่าภาษาส่วนใหญ่ที่ AI ความเชื่อนี้มาจากไหน? และมีพื้นฐานใด ๆ ในความเป็นจริงหรือไม่

19
ภาษาการเขียนโปรแกรมที่มีกลไกการขยายไวยากรณ์คล้าย Lisp [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันมีความรู้ จำกัด ใน Lisp (พยายามที่จะเรียนรู้เล็กน้อยในเวลาว่างของฉัน) แต่เท่าที่ฉันเข้าใจมาโคร Lisp อนุญาตให้แนะนำการสร้างภาษาใหม่และไวยากรณ์โดยการอธิบายพวกเขาใน Lisp เอง ซึ่งหมายความว่าสามารถเพิ่มการสร้างใหม่เป็นไลบรารีโดยไม่ต้องเปลี่ยน Lisp คอมไพเลอร์ / ล่าม วิธีนี้แตกต่างจากภาษาโปรแกรมอื่นมาก เช่นถ้าฉันต้องการขยาย Pascal ด้วยลูปชนิดใหม่หรือสำนวนเฉพาะบางอย่างฉันจะต้องขยายไวยากรณ์และความหมายของภาษาแล้วนำคุณสมบัติใหม่นั้นมาใช้ในคอมไพเลอร์ มีภาษาการเขียนโปรแกรมอื่น ๆ นอกตระกูล Lisp (เช่นนอกเหนือจาก Common Lisp, Scheme, Clojure (?), Racket (?), ฯลฯ ) ที่มีความเป็นไปได้ที่คล้ายคลึงกันในการขยายภาษาภายในภาษานั้นหรือไม่ แก้ไข โปรดหลีกเลี่ยงการอภิปรายเพิ่มเติมและเฉพาะเจาะจงในคำตอบของคุณ แทนที่จะเป็นรายการที่มีความยาวของภาษาโปรแกรมที่สามารถขยายออกไปไม่ทางใดก็ทางหนึ่งฉันต้องการที่จะเข้าใจจากมุมมองเชิงความคิดเกี่ยวกับมาโคร Lisp เฉพาะที่เป็นกลไกการขยายและภาษาที่ไม่ใช่ Lisp เสนอแนวคิดบางอย่าง ที่ใกล้กับพวกเขา

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

4
Python decorators และ Lisp macros
เมื่อมองนักตกแต่งงูหลามที่มีคนสร้างคำกล่าวไว้พวกเขามีพลังเทียบเท่ากับมาโคร Lisp (โดยเฉพาะ Clojure) ดูตัวอย่างที่ให้ไว้ในPEP 318ดูเหมือนกับฉันราวกับว่าพวกเขาเป็นเพียงวิธีการที่ยอดเยี่ยมในการใช้ฟังก์ชั่นลำดับสูงแบบเก่าใน Lisp: def attrs(**kwds): def decorate(f): for k in kwds: setattr(f, k, kwds[k]) return f return decorate @attrs(versionadded="2.2", author="Guido van Rossum") def mymethod(f): ... ฉันไม่ได้เห็นรหัสใด ๆ เปลี่ยนในใด ๆ ของตัวอย่างเช่นที่อธิบายไว้ในกายวิภาคของมาโคร Clojure พลัส ธ หายไปhomoiconicity อาจทำให้การแปลงรหัสเป็นไปไม่ได้ ดังนั้นทั้งสองเปรียบเทียบกันอย่างไรและคุณสามารถบอกได้ว่าพวกเขามีความเท่าเทียมกันในสิ่งที่คุณสามารถทำได้? หลักฐานดูเหมือนจะชี้ไปที่มัน แก้ไข:จากความคิดเห็นฉันกำลังมองหาสองสิ่ง: การเปรียบเทียบ "มีประสิทธิภาพเท่ากับ" และ "เป็นเรื่องง่ายที่จะทำสิ่งที่ยอดเยี่ยมด้วย"
18 python  lisp  clojure  macros 

2
IronScheme สมบูรณ์เพียงพอหรือมั่นคงเพียงพอที่จะเรียนรู้ที่คุ้มค่าหรือไม่
IronSchemeถูกกล่าวถึงในWikipediaว่าเป็นตัวตายตัวแทนต่อโครงการที่ล้มเหลวที่เรียกว่า IronLisp นำ Lisp ไปยัง CLR และ. NET วิธีที่ Clojure ทำเพื่อ JVM ใครบ้างมีประสบการณ์กับภาษานี้หรือไม่? มันดูค่อนข้างสมบูรณ์ (99%) แต่ฉันไม่แน่ใจว่าจะตัดสินได้อย่างไรว่ามันคุ้มค่ากับเวลาของฉันที่จะทำตามวิธีการตั้งค่าหรือไม่ ด้วยความเสถียรหรือสมบูรณ์ฉันหมายถึงการใช้มันสำหรับโครงการจริงมากกว่าแค่เล่นซอกับเครื่องมือและปัญหาสไตล์ของ Project Euler
17 .net  lisp  scheme  clr 

5
XSLT และทางเลือกที่เป็นไปได้ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันดู XSLT สำหรับการแปลงไฟล์ XML หนึ่งไฟล์เป็นอีกไฟล์หนึ่ง (HTML เป็นต้น) ตอนนี้ในขณะที่ฉันเห็นว่ามีประโยชน์กับ XSLT (เป็นเครื่องมือมาตรฐานและใช้แล้ว) ฉันลังเลด้วยเหตุผลสองประการ โปรเซสเซอร์ XSLT ดูเหมือนจะค่อนข้างหิวโหย / ทรัพยากร XML เป็นสัญกรณ์ที่ไม่ดีสำหรับการเขียนโปรแกรมและนั่นคือสิ่งที่ XSLT เกี่ยวข้อง ไม่ต้องการหมุนรอบ XSLT ที่นี่ แต่ฉันต้องการชี้ให้เห็นสิ่งที่ฉันไม่ชอบเกี่ยวกับเรื่องนี้เพื่อให้คุณมีความคิดในสิ่งที่ฉันคาดหวังจากทางเลือก มีพื้นหลังเสียงกระเพื่อมบางฉันสงสัยว่ามีวิธีที่ดีกว่าสำหรับการเปลี่ยนแปลงโครงสร้างต้นไม้ตามเสียงกระเพื่อมบาง ฉันได้เห็นการอ้างอิงถึง DSSSL น่าเศร้าที่ลิงก์ส่วนใหญ่เกี่ยวกับ DSSSL นั้นตายแล้วดังนั้นจึงเป็นเรื่องยากที่จะเห็นรหัสที่แสดงให้เห็น DSSSL ยังคงใช้งานอยู่หรือไม่ ฉันจำได้ว่าฉันได้ติดตั้ง openjade ครั้งเดียวเมื่อตรวจสอบสิ่งที่ docbook โพสต์บล็อกของ Jeff Atwoodดูเหมือนจะบอกใบ้ให้ใช้ …
15 xml  lisp  linq  xslt 

5
ภาษาโปรแกรมล่าสุดสำหรับ AI หรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ไม่กี่ทศวรรษที่ผ่านมาการเขียนโปรแกรมภาษาของทางเลือกสำหรับ AI เป็นอย่างใดอย่างหนึ่งเปิดฉากหรือLISP , และอื่น ๆ อีกสองสามคนที่ไม่ได้เป็นที่รู้จักกันเป็นอย่างดี ส่วนใหญ่ออกแบบมาก่อนยุค 70 การเปลี่ยนแปลงเกิดขึ้นมากมายในหลาย ๆ โดเมนเฉพาะภาษา แต่ในโดเมน AI มันไม่ได้โผล่ขึ้นมามากเหมือนในเว็บภาษาหรือสคริปต์เฉพาะเป็นต้น มีภาษาโปรแกรมล่าสุดที่มีจุดประสงค์เพื่อเปลี่ยนเกมใน AI และเรียนรู้จากความไม่เพียงพอของภาษาเดิมหรือไม่?

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