Some people have their custom list class with car(eg. head) cdr(eg. tail). I'm wondering if std::list can be used to support these operations. car is trivial. But I don't know how cdr can be emulated.
Is there a lisp cdr equivalence for c++ std::list
252 Views Asked by zjk At
1
There are 1 best solutions below
Related Questions in C++
- How to immediately apply DISPLAYCONFIG_SCALING display scaling mode with SetDisplayConfig and DISPLAYCONFIG_PATH_TARGET_INFO
- Why can't I use templates members in its specialization?
- How to fix "Access violation executing location" when using GLFW and GLAD
- Dynamic array of structures in C++/ cannot fill a dynamic array of doubles in structure from dynamic array of structures
- How do I apply the interface concept with the base-class in design?
- File refuses to compile std::erase() even if using -std=g++23
- How can I do a successful map when the number of elements to be mapped is not consistent in Thrust C++
- Can std::bit_cast be applied to an empty object?
- Unexpected inter-thread happens-before relationships from relaxed memory ordering
- How i can move element of dynamic vector in argument of function push_back for dynamic vector
- Brick Breaker Ball Bounce
- Thread-safe lock-free min where both operands can change c++
- Watchdog Timer Reset on ESP32 using Webservers
- How to solve compiler error: no matching function for call to 'dmhFS::dmhFS()' in my case?
- Conda CMAKE CXX Compiler error while compiling Pytorch
Related Questions in LISP
- How to copy and paste an autocad table using python
- common lisp type vector of fixnums
- LISP to Batchplot (Publish) Multiple .dwg Models into One PDF
- Make changes to a LISP code for AutoCAD, it is possible?
- FeatureLines civil3d
- Detecting shared structure in tree made of cons cells
- How to load FRL into Clisp?
- Scheme Question - How can I check if there are a list of pairs
- do v. do*: Why does the same code produce a different result?
- undefined variable: COMMON-LISP:PROGN when running DO
- Making an SBCL program stop
- Getting arguments from the command line within SBCL
- "undefined variable: COMMON-LISP-USER::PRIMELIST" warning, using SBCL
- Counting vowels in Lisp
- Exercise 12.10 from the book Scheme and the art of programming
Related Questions in CDR
- Automate a task of editing cdr files in c# using corel draw type library
- What is the result of this in scheme: (cdr '((a b c d)))
- How to make call records to show up on the web page (Asterisk CDR)?
- CDR ASN1 decode failed (python - asn1tools)
- Java read .cdr-File
- freepbx. Significant call time with BUSY status
- How to fix line breaks in the text cdr file?
- Can a macro be used to make c[...]r combinations with any arbitrary number of car and cdr calls, such as cadaddr?
- How do lisps that prefer first and rest to car and cdr approach combinations like cdaddr?
- How can write a program in scheme to find factors of a list of integer? how can extend it into arbitrarily large input?
- How can write a program in scheme to find factors of a list of numbers
- AWS Cognito OIDC Customizations
- Kamailio 5.4 Send CDR data to an API endpoint
- Python: functional programming with cons, car & cdr
- missing ringing call in cdr table for asterisk voip
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
In C++20, we're getting the Ranges library. I haven't looked at it in much detail yet, but I suspect that subranges or views might help here.
Pre C++20
In C++ (up until now), we often don't directly pass a list (or other container) around, but rather a pair of iterators. Take a look at the
<algorithm>library: functions likestd::sortdon't take a reference to a container - instead, they take afirstiterator and anlastiterator.Important:
lastdoes not point to the last item, but rather one place beyond it - the same asstd::list::end()would give you. This means that whenfirst == lastyou have "an empty list"In a pre-C++20 world, you would generally write your code in the same way. One of the advantages of doing this is that if you have a pair of iterators
firstandlast, then (as long asfirst != last)*firstis thecar, and the pairstd::next(first)andlastis thecdr. So:becomes something like
(I know some people would disagree with how I've formatted that conditional operator over multiple lines - but I wanted to mirror the Lisp style.)