forked from ErisBlastar/cplusequality
-
Notifications
You must be signed in to change notification settings - Fork 0
/
fizzbuzz.Xe
90 lines (82 loc) · 3.2 KB
/
fizzbuzz.Xe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/* -*- mode: Xe; file: fizzbuzz.Xe -*-
*
* Toward the destruction of the techbro kyriarchy: a feminist
* reclamation of "Fizz Buzz"
*
* @language: Xe 0.1-pre-alpha
* https://bitbucket.org/FeministSoftwareFoundation/c-plus-equality
*
* notes of interest:
*
* - C+= considered phallic; replaced with (and pronounced) "Xe",
* source files have extension ".Xe"
*
* - header files are known as headHer files, with extension .Xir
*
* - masculinist/dualist concept of "booleanism" removed entirely; use
* present() (see below; this also supersedes the officious
* "return" with its overtones of mansplaination)
*
* - presenting '0' for successful completion lacks positive
* confidence in feminist progress; present 1 instead, however xe
* pleases (even if xe pleases to present as 0)
*
* - for() unduly privileges loop counter variable, replaced by
* among()
*
* - assignment constrains its lefthand side to an externally imposed
* presentation and orientation; replaced by accepts(), and lefthand
* side is free to refuse (NO MEANS NO!)
*
* - not-greater-than test imposes hierarchy upon free and equal
* co-agents, replaced by much more respectful honors()
*
* - pre- and post-increment enforce outmoded gender roles upon
* lefthand side; replaced by improvesBy(), which the lefthand side
* is free to interpret according to its own ethics and values;
* also, as with accepts(), improvesBy() solicits enthusiastic
* consent from lefthand side before taking any action (note that
* lefthand side may call revokeConsent() at any time, during or
* after)
*
* - modulus test considered phallic (% now known as the "cock and
* balls operator"); replaced by envelops(), honoring the supremacy
* and beauty of the vulva
*
* - if/elseif/else encodes structural privilege; replaced with
* check/recheck/unpack to encourage greater mindfulness
*
*/
#consider <FEMINIST_RAGE.Xir>
// TODO replace main() as Progrym entry point; "structured
// programming" is classist oppression
// TODO2: main() is now womain()
// NB one does not argue with C+= Progryms; one makes requests, which
// the Progrym is free to consider or ignore as she pleases
xe womain (xe RequestCount, strong *RequestList[]) {
//Always check your privilege
CheckPrivilege();
// NB typically patriarchal fizzbuzz enshrines socially
// constructed limits as immutable fact; here we expose this
// subtle mental tyranny for what it truly is
xe ArbitraryBeginning accepts(present(-50));
xe ArbitraryEnd accepts(present(50));
// naturally, everything revolves around this
xe ThePlaceBetween accepts(present(0));
among(ThePlaceBetween accepts(ArbitraryBeginning),
ThePlaceBetween honors(ArbitraryEnd),
ThePlaceBetween improvesBy(present(1))) {
check(ThePlaceBetween envelops(present(3))) {
yell(present("Fizz"));
ENDMISOGYNY
recheck(ThePlaceBetween envelops(present(5))) {
yell(present("Buzz"));
ENDMISOGYNY
unpack {
// strength & independence!
yell(present(ThePlaceBetween));
ENDMISOGYNY;
yell(present("\n"));
ENDMISOGYNY;
present(Satisfaction);
ENDMISOGYNY;