|
@@ -121,15 +121,15 @@ discard block |
|
|
block discarded – undo |
121
|
121
|
public function relationships(): array |
122
|
122
|
{ |
123
|
123
|
// Genitive forms in English are simple/regular, as no relationship name ends in "s". |
124
|
|
- $genitive = static fn (string $s): array => [$s, $s . '’s %s']; |
|
124
|
+ $genitive = static fn(string $s): array => [$s, $s . '’s %s']; |
125
|
125
|
|
126
|
|
- $cousin = static fn (int $up, int $down): array => $genitive( |
|
126
|
+ $cousin = static fn(int $up, int $down): array => $genitive( |
127
|
127
|
(static::COUSIN[min($up, $down)] ?? 'distant cousin') . |
128
|
128
|
(static::REMOVED[abs($up - $down)] ?? ' many times removed') . |
129
|
129
|
static::DIRECTION[$up <=> $down] |
130
|
130
|
); |
131
|
131
|
|
132
|
|
- $great = static fn (int $n, string $prefix, string $suffix): array => $genitive( |
|
132
|
+ $great = static fn(int $n, string $prefix, string $suffix): array => $genitive( |
133
|
133
|
$prefix . ($n > 3 ? 'great ×' . $n . ' ' : str_repeat('great-', $n)) . $suffix |
134
|
134
|
); |
135
|
135
|
|
|
@@ -224,22 +224,22 @@ discard block |
|
|
block discarded – undo |
224
|
224
|
Relationship::fixed('grandson', 'grandson’s %s')->child()->son(), |
225
|
225
|
Relationship::fixed('grandchild', 'grandchild’s %s')->child()->child(), |
226
|
226
|
// Relationships with dynamically generated names |
227
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 1, '', 'aunt'))->ancestor()->sister(), |
228
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 1, '', 'aunt'))->ancestor()->sibling()->wife(), |
229
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 1, '', 'uncle'))->ancestor()->brother(), |
230
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 1, '', 'uncle'))->ancestor()->sibling()->husband(), |
231
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 1, '', 'niece'))->sibling()->descendant()->female(), |
232
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 1, '', 'niece'))->married()->spouse()->sibling()->descendant()->female(), |
233
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 1, '', 'nephew'))->sibling()->descendant()->male(), |
234
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 1, '', 'nephew'))->married()->spouse()->sibling()->descendant()->male(), |
235
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 2, 'maternal ', 'grandmother'))->mother()->ancestor()->female(), |
236
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 1, 'maternal ', 'grandfather'))->mother()->ancestor()->male(), |
237
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 1, 'paternal ', 'grandmother'))->father()->ancestor()->female(), |
238
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 1, 'paternal ', 'grandfather'))->father()->ancestor()->male(), |
239
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 1, '', 'grandparent'))->ancestor(), |
240
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 2, '', 'granddaughter'))->descendant()->female(), |
241
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 2, '', 'grandson'))->descendant()->male(), |
242
|
|
- Relationship::dynamic(static fn (int $n) => $great($n - 2, '', 'grandchild'))->descendant(), |
|
227
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 1, '', 'aunt'))->ancestor()->sister(), |
|
228
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 1, '', 'aunt'))->ancestor()->sibling()->wife(), |
|
229
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 1, '', 'uncle'))->ancestor()->brother(), |
|
230
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 1, '', 'uncle'))->ancestor()->sibling()->husband(), |
|
231
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 1, '', 'niece'))->sibling()->descendant()->female(), |
|
232
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 1, '', 'niece'))->married()->spouse()->sibling()->descendant()->female(), |
|
233
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 1, '', 'nephew'))->sibling()->descendant()->male(), |
|
234
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 1, '', 'nephew'))->married()->spouse()->sibling()->descendant()->male(), |
|
235
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 2, 'maternal ', 'grandmother'))->mother()->ancestor()->female(), |
|
236
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 1, 'maternal ', 'grandfather'))->mother()->ancestor()->male(), |
|
237
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 1, 'paternal ', 'grandmother'))->father()->ancestor()->female(), |
|
238
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 1, 'paternal ', 'grandfather'))->father()->ancestor()->male(), |
|
239
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 1, '', 'grandparent'))->ancestor(), |
|
240
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 2, '', 'granddaughter'))->descendant()->female(), |
|
241
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 2, '', 'grandson'))->descendant()->male(), |
|
242
|
+ Relationship::dynamic(static fn(int $n) => $great($n - 2, '', 'grandchild'))->descendant(), |
243
|
243
|
Relationship::dynamic($cousin)->ancestor()->sibling()->descendant(), |
244
|
244
|
]; |
245
|
245
|
} |