# 1, 2, Fizz, 4, Buzz

## Introduction

In our recent effort to collect catalogues of shortest solutions for standard programming exercises, here is PPCG's first ever vanilla FizzBuzz challenge. If you wish to see other catalogue challenges, there is "Hello World!" and "Is this number a prime?".

## Challenge

Write a program that prints the decimal numbers from 1 to 100 inclusive. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.

## Output

The output will be a list of numbers (and Fizzes, Buzzes and FizzBuzzes) separated by a newline (either \n or \r\n). A trailing newline is acceptable, but a leading newline is not. Apart from your choice of newline, the output should look exactly like this:

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz
31
32
Fizz
34
Buzz
Fizz
37
38
Fizz
Buzz
41
Fizz
43
44
FizzBuzz
46
47
Fizz
49
Buzz
Fizz
52
53
Fizz
Buzz
56
Fizz
58
59
FizzBuzz
61
62
Fizz
64
Buzz
Fizz
67
68
Fizz
Buzz
71
Fizz
73
74
FizzBuzz
76
77
Fizz
79
Buzz
Fizz
82
83
Fizz
Buzz
86
Fizz
88
89
FizzBuzz
91
92
Fizz
94
Buzz
Fizz
97
98
Fizz
Buzz


The only exception to this rule is constant output of your language's interpreter that cannot be suppressed, such as a greeting, ANSI color codes or indentation.

## Further Rules

• This is not about finding the language with the shortest approach for playing FizzBuzz, this is about finding the shortest approach in every language. Therefore, no answer will be marked as accepted.

• Submissions are scored in bytes in an appropriate preexisting encoding, usually (but not necessarily) UTF-8. Some languages, like Folders, are a bit tricky to score--if in doubt, please ask on Meta.

• Nothing can be printed to STDERR.

• Unlike our usual rules, feel free to use a language (or language version) even if it's newer than this challenge. If anyone wants to abuse this by creating a language where the empty program generates FizzBuzz output, then congrats for paving the way for a very boring answer.

Note that there must be an interpreter so the submission can be tested. It is allowed (and even encouraged) to write this interpreter yourself for a previously unimplemented language.

• If your language of choice is a trivial variant of another (potentially more popular) language which already has an answer (think BASIC or SQL dialects, Unix shells or trivial Brainfuck derivatives like Alphuck and ???), consider adding a note to the existing answer that the same or a very similar solution is also the shortest in the other language.

• Because the output is fixed, you may hardcode the output (but this may not be the shortest option).

• You may use preexisting solutions, as long as you credit the original author of the program.

• Standard loopholes are otherwise disallowed.

As a side note, please don't downvote boring (but valid) answers in languages where there is not much to golf; these are still useful to this question as it tries to compile a catalogue as complete as possible. However, do primarily upvote answers in languages where the authors actually had to put effort into golfing the code.

## Catalogue

var QUESTION_ID=58615;var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";var COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk";var OVERRIDE_USER=30525;var answers=[],answers_hash,answer_ids,answer_page=1,more_answers=true,comment_page;function answersUrl(index){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(index,answers){return"https://api.stackexchange.com/2.2/answers/"+answers.join(';')+"/comments?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:true,success:function(data){answers.push.apply(answers,data.items);answers_hash=[];answer_ids=[];data.items.forEach(function(a){a.comments=[];var id=+a.share_link.match(/\d+/);answer_ids.push(id);answers_hash[id]=a});if(!data.has_more)more_answers=false;comment_page=1;getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:true,success:function(data){data.items.forEach(function(c){if(c.owner.user_id===OVERRIDE_USER)answers_hash[c.post_id].comments.push(c)});if(data.has_more)getComments();else if(more_answers)getAnswers();else process()}})}getAnswers();var SCORE_REG=/<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;var OVERRIDE_REG=/^Override\s*header:\s*/i;function getAuthorName(a){return a.owner.display_name}function process(){var valid=[];answers.forEach(function(a){var body=a.body;a.comments.forEach(function(c){if(OVERRIDE_REG.test(c.body))body='<h1>'+c.body.replace(OVERRIDE_REG,'')+'</h1>'});var match=body.match(SCORE_REG);if(match)valid.push({user:getAuthorName(a),size:+match[2],language:match[1],link:a.share_link,});else console.log(body)});valid.sort(function(a,b){var aB=a.size,bB=b.size;return aB-bB});var languages={};var place=1;var lastSize=null;var lastPlace=1;valid.forEach(function(a){if(a.size!=lastSize)lastPlace=place;lastSize=a.size;++place;var answer=jQuery("#answer-template").html();answer=answer.replace("{{PLACE}}",lastPlace+".").replace("{{NAME}}",a.user).replace("{{LANGUAGE}}",a.language).replace("{{SIZE}}",a.size).replace("{{LINK}}",a.link);answer=jQuery(answer);jQuery("#answers").append(answer);var lang=a.language;lang=jQuery('<a>'+lang+'</a>').text();languages[lang]=languages[lang]||{lang:a.language,lang_raw:lang.toLowerCase(),user:a.user,size:a.size,link:a.link}});var langs=[];for(var lang in languages)if(languages.hasOwnProperty(lang))langs.push(languages[lang]);langs.sort(function(a,b){if(a.lang_raw>b.lang_raw)return 1;if(a.lang_raw<b.lang_raw)return-1;return 0});for(var i=0;i<langs.length;++i){var language=jQuery("#language-template").html();var lang=langs[i];language=language.replace("{{LANGUAGE}}",lang.lang).replace("{{NAME}}",lang.user).replace("{{SIZE}}",lang.size).replace("{{LINK}}",lang.link);language=jQuery(language);jQuery("#languages").append(language)}}
body{text-align:left!important}#answer-list{padding:10px;width:290px;float:left}#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="language-list"> <h2>Shortest Solution by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr> </thead> <tbody id="languages"> </tbody> </table> </div> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr> </thead> <tbody id="answers"> </tbody> </table> </div> <table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr> </tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr> </tbody> </table>

• Nothing can be printed to STDERR. Is this true only when running, or also when compiling (assuming that is a separate step?) – AShelly Sep 24 '15 at 20:47
• @AShelly Only when running – Beta Decay Sep 24 '15 at 20:48
• I’m not sure I like the fact that you hardcoded the 100 into the challenge. That way, a program that just generates the expected output is a valid entry, but is not interesting for this challenge. I think the challenge should expect the program to input the number of items to output. – Timwi Sep 24 '15 at 23:28
• @Timwi While I agree that it would make it (only slightly) more interesting, I've very often seen FizzBuzz as strictly 1 to 100 (on Wikipedia and Rosetta Code, for example). If the goal is to have a "canonical" FB challenge, it makes sense. – Geobits Sep 25 '15 at 0:50
• A "vanilla fizzbuzz" sounds delicious. – Reinstate Monica -- notmaynard Sep 25 '15 at 15:12

## JavaScript (using external library) (90 bytes)

x=>_.Range(1,100).Select(x=>x%3==0?(x%5==0?"FizzBuzz":"Fizz"):x%5==0?"Buzz":x).WriteLine()


Code explanation: Creates a range starting at 1 and extending 100 elements. Select maps the item according to the predicate. First check if divisible by 3, if so check if divisible by 5. If so, select "FizzBuzz", else select "Fizz". Otherwise,check if divisible by 5. If so, select "Buzz", else just select the number. WriteLine is built into the library, and it writes each element on its own line

# DUP, 76 bytes

[$$3/%[]['F,'i,'z,'z,]?\5/%[]['B,'u,'z,'z,]?*[.][]?10,]c:0[100<][1+c;!]# Explanation of program flow, code blocks: DUP has two default truth values: -1 (true, all bits set) and 0 (false, no bits set). For conditional evaluations every nonzero value is accepted as true, comparisons themselves lead to either -1 or 0. DUP has two conditional expressions, if-then-else and a while loop: [execute if not false][execute if false]?. E.g. 1['t,]['f,]? prints t to STDOUT, because 1 is not false. [condition][execute while not false]#. E.g. 5[0>][.1-]# prints the numbers 5,4,3,2,1 to STDOUT. The condition block tests the top stack value if it’s greater than 0, the execute block prints the number and decrements it. The condition that’s checked is always the topmost stack element, which gets popped off the stack during the check. [$$3/%${dup,dup,push 3, moddiv, pop, dup} [] {if condition true do nothing} ['F,'i,'z,'z,]? {if condition false print Fizz} \5/%$                               {swap, push 5, moddiv, pop, dup}
[]                                  {if condition true do nothing}
['B,'u,'z,'z,]?                   {if condition false print Buzz}
*                                   {mul}
[$.] {if condition true dup, print to STDOUT} []? {if condition false do nothing} 10, {push 10, print char to STDOUT (newline)} ]c: {define function c} 0 {push 0} [$100<]                                 {while dup < push 100 true}
[1+c;!]#                         {do push 1, add, execute function c}


Step by step:

instruction             stack
0                       0
[
$0,0 100 0,0,100 < 0,-1 ] 0 [ 1 0,1 + 1 increment counter c; 1,0 0=start address of function c ! execute c [$$3 1,1,1,3 / 1,1,1,0 mod,div operator (n mod 3, n div 3) % 1,1,1 /% → mod$                       1,1,1,1         result of n%3 used as flag for later check
[]                      1,1,1           condition true→do nothing
['F,'i,'z,'z,]?                         skipped
\                       1,1,1           swap top and 2nd stack elements
5                       1,1,1,5
/                       1,1,1,0         mod,div operator
%                       1,1,1           /% → mod
$1,1,1,1 n%5 flag [] 1,1,1 condition true → do nothing ['B,'u,'z,'z,]? skipped * 1,1 multiply %3 and %5 flags, result is only >0 if neither %3 nor %5 are 0. [ 1 if condition (flag)>0$                      1,1             dup
.]                    1               print number to STDOUT: '1'
[]?                                     skipped

back to while loop

[
$1,1 100 1,1,100 < 1,-1 ] 1 [ 1 1,1 + 2 increment counter c; 2,0 0=start address of function c ! execute c ...  A full description of all operators and program flow can be found at my GitHub repository, together wtih my Julia interpreter of DUP. An online Javascript implementation showing useful debug information can be found here. A rather terse introduction can be found on the esolangs.org DUP page. ## REXX, 94 bytes f.= b.= f.0='Fizz' b.0='Buzz' do i=1 to 100 f=i//3 b=i//5 r=f.f||b.b if r<i then r=i say r end  Alternative 94 byte solution: f='FizzBuzz' do i=1 to 100 r=left(f,(i//3=0)*4)right(f,(i//5=0)*4) if r='' then r=i say r end  # Java, 153 145 bytes enum f{;static{for(int i=1;i<101;i++)System.out.println(i%3>0&i%5>0?i:(i%3<1&i%5<1?"FizzBuzz":(i%3<1?"Fizz":(i%5<1?"Buzz":0))));System.exit(0);}}  Not as long as I expected it to be, maybe because I ommited main function and used an enum. Quite overcomplicated print statement. Ungolfed version(Modified to be readable) with comments: enum f {; // Required because it is an enum static { // static block for (int i = 1; i < 101; i++) { // loop from 1 to 100 inclusive boolean by3 = i % 3 == 0; boolean by5 = i % 5 == 0; if (!by3 && !by5) // Not divisible by 3 and 5 System.out.println(i); // Just show the number else if (by3 && by5) // Divisible by both System.out.println("FizzBuzz"); // Show FizzBuzz else if (by3) // Divisible only by 3 System.out.println("Fizz"); // Show Fizz else // Divisible only by 5 System.out.println("Buzz"); // Show Buzz } System.exit(0); // Required because there can't be output to stderr and it would crash trying to run main function } }  Ungolfed not modified: enum f {; static { for (int i = 1; i < 101; i++) System.out.println(i % 3 > 0 & i % 5 > 0 ? i : (i % 3 < 1 & i % 5 < 1 ? "FizzBuzz" : (i % 3 < 1 ? "Fizz" : (i % 5 < 1 ? "Buzz" : 0)))); System.exit(0); } }  EDIT: Saved 8 bytes by replacing ==0 with <1, !=0 with >0 and && with & # S.I.L.O.S, 141 bytes lbla a+1 c=1-(a%3)*(a%5) if c b printIntNoLine a lblb c=(a%3) if c d print Fizz lbld c=(a%5) if c c print Buzz lblc printLine b=100-a if b a  Try it online! Unfortunately SILOS is incredibly verbose, and an interpreter bug cost me a few extra bytes, but I think SILOS is "superior" only to scratch in this challenge. # Fourier, 81 bytes |Fizz|F|Buzz|B1~i100(i~X%15{0}{1~XFB}X%5{0}{1~XB}X%3{0}{1~XF}X{i}{Xo}10ai^~i)  Try it on FourIDE Who knew such a simple task would yield such a mammoth of a program! Pseudocode of the program: Function F { Print "Fizz" } Function B { Print "Buzz" } i = 1 While i != 100 X = i If X % 15 == 0 X = 1 Function F Function B End if If X % 5 == 0 X = 1 Function B End If If X % 3 == 0 X = 1 Function F End If If X == i Print X End if Print "\n" i += 1 End while  • you say function a in the ungolfed, do you mean function F? – Destructible Lemon May 15 '17 at 23:39 • also I don't think you get to call it mammoth if it fits on screen in one line, and the challenge actually isn't that simple – Destructible Lemon May 15 '17 at 23:40 ## ///, 209 208 bytes /I/ EFizz //H/FizzE//G/ Fizz //E/Buzz /1 2G4I7 8GE11G13 14 H16 17G19I22 23GE26G28 29 H31 32G34I37 38GE41G43 44 H46 47G49I52 53GE56G58 59 H61 62G64I67 68GE71G73 74 H76 77G79I82 83GE86G88 89 H91 92G94I97 98GBuA  • is it just me or is some of this redundant? there isn't much point in shortening Buzz to BuC if the bytes saved by that in general are less than the bytes added – Destructible Lemon May 15 '17 at 4:34 # Micro, 72 bytes :i{i1+:i"":d i3/i3%=if("Fizz":d,) i5/i5%=if(d"Buzz"+:d,) d:\i100=if(,a)}  # Python 2, 106 bytes for n in range(1,101): a="Fizz"*int(n%3==0)+"Buzz"*int(n%5==0) if a=="": print n else: print a  Try it online! # Recursiva, 46 bytes EmB100"%a15:%a5:%a3:a!'Fizz'!'Buzz'!'FizzBuzz'  Try it online! # Explanation: EmB100"%a15:%a5:%a3:a!'Fizz'!'Buzz'!'FizzBuzz' E - Stringify and join with new-lines m - map with B100 - Range [1,2..100] " - mapping function start %a15:%a5:%a3:a!'Fizz'!'Buzz'!'FizzBuzz' - string as per divisibility %a15:%a5:%a3:a!'Fizz'!'Buzz'!'FizzBuzz' roughly translates to this if-else block: if(a%15): elif(a%5): elif(a%3): return a else: return 'Fizz' else: return 'Buzz' else: return 'FizzBuzz'  # Jq 1.5, 90 bytes def f:if.%15<1then"FizzBuzz"elif.%5<1then"Buzz"elif.%3<1then"Fizz"else. end;range(100)+1|f  Try it online! # Modula-2, 222 bytes MODULE F;IMPORT InOut;VAR i:INTEGER;BEGIN FOR i:=1 TO 100 DO CASE i*i*i*i MOD 15 OF 0:InOut.WriteString("FizzBuzz")|1:InOut.WriteInt(i,0)|6:InOut.WriteString("Fizz")|10:InOut.WriteString("Buzz")END;InOut.WriteLn END END F.  Tested with Amsterdam Compiler Kit. The program needs 4-byte INTEGER. If using 2-byte INTEGER, i*i*i*i overflows and the program fails with a case error. With indentation: MODULE F; IMPORT InOut; VAR i: INTEGER; BEGIN FOR i := 1 TO 100 DO CASE i * i * i * i MOD 15 OF 0: InOut.WriteString("FizzBuzz") | 1: InOut.WriteInt(i, 0) | 6: InOut.WriteString("Fizz") | 10: InOut.WriteString("Buzz") END; InOut.WriteLn END END F.  ACK compiles the PIM3 dialect of Modula-2 and comes with an InOut module. Other compilers for Modula-2 or Oberon might have shorter syntax or come with shorter modules. • I don't like having 3 calls to InOut.WriteString, but adding a PROCEDURE p(s:ARRAY OF CHAR);BEGIN InOut.WriteString(s)END p; would cost 61 bytes and save only 48 bytes in the calls. • I would write FOR i:=1TO 100DO but ACK rejects it as a syntax error. • I had used i*i*i*i MOD 15 in my AppleScript answer. # Java (OpenJDK 8), 127 bytes interface J{static void main(String[]a){for(int i=0;i++<100;)System.out.println((i%3<1?"Fizz":"")+(i%5<1?"Buzz":i%3<1?"":i));}}  Try it online! ungolfed: interface J { static void main(String[] a) { for (int i = 0; i++ < 100;) System.out.println((i % 3 < 1 ? "Fizz" : "") + (i % 5 < 1 ? "Buzz" : i % 3 < 1 ? "" : i)); } }  # nodejs repl, 60 bytes for(i=0;++i<101;util.puts(i%5?s||i:s+'Buzz'))s=i%3?'':'Fizz'  With latest node, this prints a deprecation warning to the console. This presumably violates the rule about printing to STDERR, but using an older version of node will fix this. # APL Nars 93 chars h;i;j i←0 L:j←0⋄i+←1⋄→A×⍳0≠3∣i⋄⍞←'Fiz'⋄j←1 A:→B×⍳0≠5∣i⋄⍞←'Buz'⋄j←1 B:→C×⍳j=0⋄→D C:⍞←i D:⎕←''⋄→L×⍳i≤99  Indented:  ∇ h;i;j i←0 L:j←0⋄i+←1⋄→A×⍳0≠3∣i⋄⍞←'Fiz'⋄j←1 A: →B×⍳0≠5∣i⋄⍞←'Buz'⋄j←1 B: →C×⍳j=0⋄→D C: ⍞←i D: ⎕←''⋄→L×⍳i≤99 ∇  # Clean, 148 + 2 = 150 bytes +2 for the -b compiler flag module m import StdEnv f[0,0,_]="FizzBuzz" f[a,b,n]|a==0="Fizz"|b==0="Buzz"=fromInt n Start=flatlines[fromString(f[n rem 3,n rem 5,n])\\n<-[1..100]]  Try it online! # MY-BASIC, 116 bytes A response. For i=1 To 100 S="" If i Mod 3=0 Then S="Fizz" If i Mod 5=0 Then S=S+"Buzz" If S="" Then Print i; Else Print S; Next  Try it online! # Ada (GNAT), 196 bytes procedure GNAT.IO.F is begin for I in Integer range 1..100 loop Put((if I mod 3=0 then"Fizz"else"")&(if I mod 5=0 then"Buzz"else""));if I mod 3*I mod 5/=0 then Put(I);end if;New_Line;end loop;end;  Try it online! 189 bytes if extraneous whitespace is allowed: procedure GNAT.IO.F is begin for I in Integer range 1..100 loop Put(if I mod 3=0 then(if I mod 5=0 then"FizzBuzz"else"Fizz")else(if I mod 5=0 then"Buzz"else I'Image));New_Line;end loop;end;  Try it online! # C#, 119 bytes class q{static void Main(){for(var i=0;i++<100;)System.Console.WriteLine(i%3*i%5>0?i+"":$"{i%3:;;Fizz}{i%5:;;Buzz}");}}


Try it online!

I was wondering how close I could get to the long standing 124 byte C# answer by Pierre-Luc, so I challenged myself to try. After unexpectedly beating it by just one byte (123 bytes, Try it online!), I took the advice from @LiamK's three year old comment and used string interpolation to shave off another 4 bytes. I'm genuinely surprised by how well this worked out!

# Pyth, 39 bytes

VS100J+?q0%N3"Fizz"k?q0%N5"Buzz"k?qJkNJ


Try it online!

There's probably an easier and shorter way. Also is(polishNotation, annoying).

This is roughly equivalent to:

for x in range(1,100):
a = "" + "Fizz" if x%3==0 else "" + "Buzz" if x%5==0 else ""
print(a if a!="" else x)


# Dart, 80 bytes

f({i=0}){for(;i++<100;)print((i%3>0?'':'Fizz')+(i%5>0?(i%3>0?'$i':''):'Buzz'));} f({i=0}){for(;i++<100;)print("${i%3>0?'':'Fizz'}${i%5>0?(i%3>0?i:''):'Buzz'}");} f({i=0}){for(;i++<100;)print(i%15<1?'FizzBuzz':i%5<1?'Buzz':i%3<1?'Fizz':'$i');}


Try it online!

# JavaScript (Node.js), 71 bytes

for(i=0;++i<101;)console.log((l=i%3<1?"Fizz":'')+(i%5<1?"Buzz":l?"":i))


Try it online!

# Java 8, 129 bytes

interface I{static void main(String[]s){for(int i=0;++i<101;)System.out.println(i%15<1?"FizzBuzz":i%3<1?"Fizz":i%5<1?"Buzz":i);}}


Try it online

# JavaScript, 12712281 79 bytes

for(e=0;++e<101;)console.log(e%3||e%5?e%3==0?"Fizz":e%5==0?"Buzz":e:"FizzBuzz")


Another way, based on Taylor Scott's solution, is only 78 72 bytes

for(e=0;++e<101;)s=e%3?"":"Fizz",s+=e%5?"":"Buzz",console.log(""==s?e:s)


Try it online! - First Solution

Try it online! - Second Solution

• Thanks @JoKing I'm still getting back into OOP from procedural (college class) – Ryan Knutson Mar 8 '19 at 1:11
• Thanks @taylor-scott – Ryan Knutson Mar 8 '19 at 1:58
• Stuff in the format a==0?b:c can be a?c:b – Jo King Mar 8 '19 at 2:30

## Scheme, 118 bytes

(for-each(lambda(i)(printf"~a~a~%"(if(=(mod i 3)0)'Fizz"")(if(=(mod i 5)0)'Buzz(if(=(mod i 3)0)""i))))(cdr(iota 101)))


Try it online!

Ungolfed:

(for-each
(lambda (i)
(printf
"~a~a~%"
(if (= (mod i 3) 0) 'Fizz "")
(if (= (mod i 5) 0) 'Buzz
;; else
(if (= (mod i 3) 0) "" i))))
(cdr (iota 101)))


## Racket, 107 Bytes

(for{[x 100]}(define(f a b n)(if(=(modulo(+ 1 x)n)0)a b))(printf"~a~a\n"(f'Fizz""3)(f'Buzz(f""(+ 1 x)3)5)))


Try it online!

The inspiration for my answer comes from Luca H's post.

All I did afterwards was factor out the repetitive calls to (if (modulo ...) ...). Sadly, there are two copies of (+ 1 x) left that I couldn't factor out using less characters, so they remain.

Ungolfed (including removing f):

(for {[x 100]}
(printf "~a~a\n"
(if (= (modulo (+ x 1) 3) 0) 'Fizz "")
(if (= (modulo (+ x 1) 5) 0) 'Buzz
(if (= (modulo (+ x 1) 3) 0) "" (+ x 1)))))


# 33, 60 bytes

1asz'Fizz'{tlot}t[3rznpn1cztsl5rz"Buzz"npn1tlaz''nqtl1aztsi]


Explanation:

1asz          (Initialise the counter with 1)
'Fizz'{tlot}t (Create function 'Fizz' to print current number)
[             (Start of loop)
3rz           (Check if divisible by 3)
np            (If so, print 'Fizz')
n1czts        (Store result for later)
5rz           (Check if divisible by 5)
"Buzz"np      (If so, print 'Buzz')
n1tlaz        (Check if divisible by neither by retrieving the value from earlier)
''nqt         (If neither 'Fizz' nor 'Buzz' was printed, print the number)
l1azts        (Restore our counter and increment it)
i]            (Print a newline and repeat from the start of the loop)


# Pip, 43 41 bytes

Fa1,101{i:0a%3?i:1O"FIZZ"a%5?i?PaPxP"BUZZ"}

Lh{i:0o%3?i:1O"FIZZ"o%5?i?PoPxP"BUZZ"++o}


Try it online!

## Visual Basic Script, 123 Bytes

For i=1To 100
S=""
If i Mod 3=0Then
S="Fizz"
End If
If i Mod 5=0Then
S=S+"Buzz"
End If
If S=""Then
S=i
End If
MsgBox S
Next


With \r\n it's technically 135 Bytes.

Also sorry @Taylor Scott but I basically copied your MY-BASIC solution :/

# Minefriff, 241 bytes

0,
>I1,+:a*a1,=?;~             o,aC            <
>:f,%?Ca*c2,:a*b7,7*e,a*c2,:f*7,a*7,oooooooo^
>:5,%?Ca*c2,:a*b7,6*b,oooo                  ^
>:3,%?Ca*c2,:f*7,a*7,oooo                   ^
>:o                                          ^
`

There isn't a TIO interpreter link for Minefriff, but you can run it online here.