- D Cookbook
- Adam D. Ruppe
- 166字
- 2021-07-16 11:50:47
Introduction
This chapter goes into the details of an artefact central to the Phobos standard library with a little core language support: ranges. Ranges are user-defined objects used to build iterators over a collection of items. The collection may be pre-existing, such as an array, or it may be generated on the fly by the range object.
Ranges are defined in a way that they can be plugged together like building blocks with generic algorithms and other transformations. Command-line pipelines and range code can be very similar.
The Unix command-line command cat file.txt | sort | uniq
can be expressed similarly in D, using ranges from std.stdio
and std.algorithm
and a helper function from std.range
, as shown in the following code:
foreach(line; File("file.txt").byLine.map!(a=>a.idup).array.sort.uniq) writeln("Unique line: ", line);
Each range feeds into the next, building a system of generic building blocks that can be combined to perform a variety of tasks. In this chapter, we'll look at how to use ranges and how to create our own.
- 極簡算法史:從數學到機器的故事
- 自己動手實現Lua:虛擬機、編譯器和標準庫
- Vue.js入門與商城開發實戰
- MATLAB 2020 從入門到精通
- Python自然語言處理(微課版)
- Cassandra Data Modeling and Analysis
- SEO實戰密碼
- KnockoutJS Starter
- Learning Data Mining with R
- Hands-On Automation Testing with Java for Beginners
- bbPress Complete
- Mastering ROS for Robotics Programming
- Learning PHP 7
- Spring Boot+MVC實戰指南
- 寫給程序員的Python教程