Set Language-Independent Type for <trademark>YAML</trademark> Version 1.1 Working Draft 2005-01-18 Oren Ben-Kiki oren@ben-kiki.org Clark Evans cce+yaml@clarkevans.com Brian Ingerson ingy@ttul.org 2001-2005 Oren Ben-Kiki Clark Evans Brian Ingerson This document may be freely copied provided it is not modified. Status This specification is a draft reflecting consensus reached by members of the yaml-core mailing list. Any questions regarding this draft should be raised on this list.
URI: tag:yaml.org,2002:set Shorthand: !!set Kind: Mapping. Definition: Unordered set of non-equal values. A set is an unordered collection of nodes such that no two nodes are equal. While sets are a fundamental mathematical type, YAML only supports them as the domains of a mapping. Hence the YAML syntax for a set is a mapping with all-null values. Most programming languages do not have a built-in native data type for supporting sets. Such data types are usually provided by libraries. If no such data type is available, an application may resort to loading a !!set into a native hash table where all values are null. The !!set tag may be given explicitly. Alternatively, the application may choose to implicitly type mappings with all-null values to sets. In this case, an explicit !!map transfer must be given to mappings that have all-null values but do not represent sets. <userinput>!!set</userinput> Examples # Explicitly typed set. baseball players: !!set ? Mark McGwire ? Sammy Sosa ? Ken Griffey # Flow style baseball teams: !!set { Boston Red Sox, Detroit Tigers, New York Yankees }