คำถามติดแท็ก standard-library

5
เหตุใดฟังก์ชัน <algorithm> ทั้งหมดจึงมีเพียงช่วงเท่านั้นไม่ใช่คอนเทนเนอร์?
มีฟังก์ชั่นที่มีประโยชน์มากมาย&lt;algorithm&gt;แต่ทุกฟังก์ชั่นทำงานใน"ลำดับ" - คู่ของตัววนซ้ำ เช่นถ้าฉันมีที่เก็บและต้องการที่จะใช้std::accumulateมันฉันต้องเขียน: std::vector&lt;int&gt; myContainer = ...; int sum = std::accumulate(myContainer.begin(), myContainer.end(), 0); เมื่อทั้งหมดที่ฉันตั้งใจจะทำคือ: int sum = std::accumulate(myContainer, 0); ในสายตาของฉันซึ่งอ่านได้ชัดเจนขึ้น ตอนนี้ฉันเห็นแล้วว่าอาจมีบางกรณีที่คุณต้องการใช้งานเฉพาะในส่วนของคอนเทนเนอร์ดังนั้นจึงมีประโยชน์อย่างมากที่จะมีตัวเลือกในการผ่านช่วง แต่อย่างน้อยในประสบการณ์ของฉันนั่นเป็นกรณีพิเศษที่หายาก ฉันมักจะต้องการที่จะทำงานบนภาชนะทั้งหมด มันง่ายที่จะเขียนฟังก์ชั่น wrapper ซึ่งใช้คอนเทนเนอร์และการโทรbegin()และend()บนมัน แต่ฟังก์ชั่นความสะดวกสบายนั้นไม่รวมอยู่ในไลบรารี่มาตรฐาน ฉันต้องการทราบเหตุผลที่อยู่เบื้องหลังตัวเลือกการออกแบบ STL นี้

10
เหตุใดไลบรารีมาตรฐานจึงไม่เขียนโปรแกรมภาษาดั้งเดิม [ปิด]
ฉันคิดว่าเหตุใดจึงมี (ในภาษาการเขียนโปรแกรมทั้งหมดที่ฉันได้เรียนรู้เช่น C ++, Java, Python) ไลบรารีมาตรฐานอย่าง stdlib แทนที่จะมี "ฟังก์ชั่น" ที่คล้ายคลึงกันซึ่งเป็นภาษาดั้งเดิมของตัวเอง

3
ทำไมไม่มีประเภทของฟังก์ชัน?
ในปัญหาการเรียนรู้ที่ฉันทำไปด้วยฉันรู้ว่าฉันต้องการประเภทของฟังก์ชันที่มีการใช้งานการเขียนเป็นต้นเหตุผล ... มันจะสะดวกในการปฏิบัติต่อการเป็นตัวแทนของฟังก์ชั่นราวกับว่ามันเป็นฟังก์ชั่นของตัวเองเพื่อให้การใช้ฟังก์ชั่นโดยนัยใช้ล่ามและฟังก์ชั่นการแต่งได้คำอธิบายใหม่ เมื่อคุณมี typeclass สำหรับฟังก์ชั่นคุณสามารถได้รับ typeclass สำหรับฟังก์ชั่นพิเศษ - ในกรณีของฉันฉันต้องการฟังก์ชั่นกลับด้าน ตัวอย่างเช่นฟังก์ชั่นที่ใช้การชดเชยจำนวนเต็มอาจแสดงโดย ADT ที่มีจำนวนเต็ม การใช้ฟังก์ชั่นเหล่านั้นหมายถึงการเพิ่มจำนวนเต็ม องค์ประกอบถูกนำมาใช้โดยการเพิ่มจำนวนเต็มห่อ ฟังก์ชันผกผันมีจำนวนเต็มค่าเป็นลบ ฟังก์ชั่นเอกลักษณ์ห่อศูนย์ ไม่สามารถจัดหาฟังก์ชั่นคงที่ได้เนื่องจากไม่มีตัวแทนที่เหมาะสมสำหรับมัน แน่นอนว่ามันไม่จำเป็นต้องสะกดสิ่งต่าง ๆ ราวกับว่ามันเป็นค่าของฟังก์ชั่น Haskell ของแท้ แต่เมื่อฉันมีความคิดฉันคิดว่าห้องสมุดแบบนั้นต้องมีอยู่แล้วและอาจใช้การสะกดมาตรฐาน แต่ฉันไม่สามารถหาประเภทของงานพิมพ์ในห้องสมุด Haskell ได้ ฉันพบโมดูลData.Functionแต่ไม่มีประเภทของงานพิมพ์ - มีเพียงฟังก์ชันทั่วไปบางส่วนที่มีให้จาก Prelude ดังนั้น - ทำไมไม่มี typeclass สำหรับฟังก์ชั่น? เป็น "เพียงเพราะไม่มี" หรือ "เพราะไม่มีประโยชน์อย่างที่คุณคิด" หรืออาจมีปัญหาพื้นฐานกับความคิด? ปัญหาที่เป็นไปได้ที่ใหญ่ที่สุดที่ฉันเคยคิดมาก่อนก็คือฟังก์ชั่นแอปพลิเคชั่นในฟังก์ชั่นที่เกิดขึ้นจริงอาจจะต้องได้รับการใส่รหัสเป็นพิเศษโดยคอมไพเลอร์เพื่อหลีกเลี่ยงปัญหาการวนซ้ำ และเพื่อที่ฉันจะต้องเรียกใช้ฟังก์ชั่นแอปพลิเคชั่นและเพื่อที่จะทำ ... เบาะแสเพิ่มเติม โค้ดตัวอย่างเพื่อแสดงสิ่งที่ฉันตั้งใจจะ ... {-# LANGUAGE MultiParamTypeClasses …

4
ฉันควรใช้ภาษาใดในการสร้างห้องสมุดข้ามแพลตฟอร์ม [ปิด]
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันต้องการสร้างห้องสมุดการแยกวิเคราะห์ SyncML ( ไม่มี UI ) ซึ่งควรจะสามารถสร้างข้อความตามข้อมูลที่ได้รับจากแอปพลิเคชันโฮสต์โดยใช้วิธีการของห้องสมุด นอกจากนี้ไลบรารีควรจะสามารถโทรกลับไปยังวิธีการต่างๆในแอปพลิเคชันโฮสต์ได้ ฉันต้องการรวบรวมและมีให้ในหลาย ๆ แพลตฟอร์มที่เป็นไปได้: Windows, Windows Phone 7 OS, OSX, iOS, Linux, Android, BlackBerry โดยทั่วไปจะมีแพลตฟอร์มให้มากที่สุด ลำดับความสำคัญคือการมีสิ่งนี้พร้อมใช้งานบนอุปกรณ์มือถือ คำถาม: ฉันควรใช้การตั้งค่าแบบใด (ภาษาโปรแกรมคอมไพเลอร์ IDE ฯลฯ ) ฉันจะรวบรวมไลบรารีนี้สำหรับแพลตฟอร์มต่าง ๆ เหล่านี้ได้อย่างไรและฉันจะเชื่อมต่อกับมันอย่างไร ข้อมูลอื่น ๆ ? เช่นบทความที่ครอบคลุมหัวข้อการพัฒนาข้ามแพลตฟอร์ม ฉันไม่ได้ทำโปรเจคข้ามแพลตฟอร์มแบบนี้มาก่อนดังนั้นข้อมูลใด ๆ ที่พร้อมจะให้ฉันไปในทิศทางที่ถูกต้องจะได้รับการต้อนรับ ตัวฉันฉันมีพื้นหลังใน …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.