Shop More Submit  Join Login
×




Details

Submitted on
October 4, 2012
File Size
2.2 KB
Submitted with
Sta.sh
Link
Thumb

Stats

Views
16,297 (2 today)
Favourites
82 (who?)
Comments
71
×
Dear Princess Celestia: Letter One

Today I Learned an important lesson about friendship.

I learned how to write "Hello World!"

Your faithful student, Twilight Sparkle.

P.S. In this case, the syntax is similar to C++.

----------------------------------------------------------------------

Dear Princess Celestia: Letter One

I wrote "Hello World!"

Your faithful student, Twilight Sparkle.

P.S. In this case, the syntax mirrors that of Python syntax. I'll leave it to you, readers, to decide which one you deem better. -Twilight Sparkle

----------------------------------------------------------------------

Dear Princess Celestia: Letter One

Today I learned how to sing Applejack's Drinking Song.

I learned Applejack's Drinking Song with Applejack.

Did you know that Applejack likes the number 99?

I did this while Applejack had more than 1.
I sang " 'Applejack' jugs of cider on the wall, 'Applejack' jugs of cider,"
Applejack got one less.

When Applejack had more than 1,
I sang "Take one down and pass it around, 'Applejack' jugs of cider on the wall."
In the end, I did this instead.
I sang "Take one down and pass it around, 1 jug of cider on the wall.
1 jug of cider on the wall, 1 jug of cider.
Take one down and pass it around, no more jugs of cider on the wall."
That's what I did.

In the end, I did this instead.
I sang "No more jugs of cider on the wall, no more jugs of cider.
Go to the store and buy some more, 99 jugs of cider on the wall."
That's what I did.

That's about Applejack's Drinking Song with Applejack!

Your faithful student, Twilight Sparkle.

P.S. Twilight's drunken state truly frightened me, so I couldn't disregard her order to send you this letter. Who would have thought her first reaction to hard cider would be this... explosive? I need your advice, your help, everything, on how to deal with her drunk... self. -Spike
When I saw the post for FiM++, I couldn't resist.

EqD Post: [link]

99 Bottles of Beer: [link]

I know the above is probably the worst way to implement 99 Bottles of Beer in the world, but I tried to keep it in a way that remotely resembles a letter to Princess Celestia.

For the name of the language, I humbly suggest... "Friendship Reports." With the actual period. (Abbreviated: FR., read "Ef Ar Dot.") Because dots are obviously important. You'll understand if you have played EVE long enough.

=> "Today I Learned..." : Main() function. Takes no arguments. May be omitted for letters without lessons(functions).
=>=> "an important lesson about friendship." : Generic opening statement.
=>=> "<comment>": Opening statement with comment on the entire letter(code). Everything written after "Today I Learned..." is considered a comment until the next period.

=> I sang / wrote / said "" : print("")
=>=> I sang "... '<var>'" : print("... '<var>'")
=> I learned <name> (with <var>).: Define function as <name>, taking <var> as arguments.
=> => That's about <function_name> (with <arg>)! : End function definition.

=> I learned <how to> <method>.: Perform single <method>. Method ends at next period.

=> got/had <num> more : +<num>
=> got/had <num> less : -<num>

=> When <var> had more than <value> : if <var> > <value>
=> I did this while <var> <comparison> <value> : for (<var> <comparison> <value>)
=>=> That's what I did. : General closing statement for all at"I did this while" and "When" (while / if) statements.

=> Did you know that <var> is/likes (the <type>) <value>? : Assign value with enforced type.

=> P.S. : Text comment, as in // .
=> By the way, <content>.: In-line comment with <content>. Comment ends at next period. (Similar to /* */ in C++.)

Ver. 0.01A - Modified "if" statements as "When," as per croaklieuhunt's input.
Ver. 0.01B - Added "That's what I did.", general closing statement for all "When" and "I did this while" statements.
Ver. 0.02 - Decided on main() function. Updated "Hello World!" program to make sense. Updated description with function definition. Updated description for performing a single method.
Add a Comment:
 
:iconwolf-mane:
Wolf-mane Featured By Owner Jan 30, 2013
This is silly and as a programmer I love it!
Reply
:iconpekusiili:
Pekusiili Featured By Owner Nov 27, 2012
I'm like super late to the party, but this is amazing! I'm gonna take some time to learn about this stuff, and once a working compiler or whatever is out, I'll start writing some programs :)

Though I guess FiM++ isn't well suited for scientific purposes. Too bad, because then I could have doubled my fun at work :D (unless someone writes an extension for Python...)
Reply
:iconsupuhstar:
Supuhstar Featured By Owner Oct 24, 2012  Hobbyist Digital Artist
Sup, bronies! So I find that this is an original source of material for the language, so I feel it's my duty to put this here. I've made the language completely usable and many of us are racing to build the best compiler. It's currently defined in a Google doc and even has its own wiki!

Not only is is consistent and unambiguous, but it can still be read as a letter! I hope you guys like what it's become, and feel free to contribute your opinions!
Reply
:iconsupuhstar:
Supuhstar Featured By Owner Oct 24, 2012  Hobbyist Digital Artist
Dear Princess Celestia: This can get confusing.

Today I learned recursion.
I remembered recursion!
That's all about recursion.

Your faithful student, Kyli Rouge.
Reply
:icondeftcrow:
DeftCrow Featured By Owner Oct 24, 2012
"Dear Kyli Rogue,

The five lines of code you gave me earlier brought me much joy,
more so because they arrived at the opportune moment of the end of today's day court.

You have my gratitude for your contributions to the development of the new cipher, hereby known as FiM++.

May your name be known in the history of logicians that helped Equestria become the nation as it stands today.

Best wishes,
Princess Celestia of Equestria."


Oh, I almost forgot. Would you be able to give me access to the first page?
While I myself is not much of a programmer, I should be able to write a foreword that details the purpose and quirks of the language. My user name there is SingleCrystal.
Reply
:iconsupuhstar:
Supuhstar Featured By Owner Oct 24, 2012  Hobbyist Digital Artist
oh, well if Celly is sending this, I'll FWD it to my MLP OC XP
"Your Highness Celestia,

It's been a pleasure working for Equestria to bring the everypony into the modern era. You can count on me if you ever need anything.

Humbly yours,
~Digit Shine"

As I said in the chat, simply click the blue "Share" button and do what is says, and I'll be able to add you :3

I'll make a space for your foreword ^^
Reply
:iconhackalotspark:
HackalotSpark Featured By Owner Oct 19, 2012  Hobbyist General Artist
Is there a website where I can learn all this? I want to learn it Dag nabbit!
Reply
:iconsapphire475gs:
sapphire475gs Featured By Owner Oct 17, 2012
The first two sets didn't immediately strike me as code... but for that last one, it was hard to miss the conditional statements. I'm at least glad I could determine that P.S. was your commenting system. I'm an electrical engineering major that hasn't really pursued programming past some basic C (and a hint of Java), but this is really neat!
Reply
:iconroxanne13579:
Roxanne13579 Featured By Owner Oct 17, 2012  Hobbyist General Artist
This is just awesome xD
I mean, I've been working with C# for over a year now and I really like working with it, but I think this'll be my new favourite language xD

Right now though, I have to learn how to work with a functional language: Haskell @_@
Gah, gimme FiM++ plox xD
Reply
:iconemanguy:
emanguy Featured By Owner Oct 16, 2012
I'm reading the syntax specification from the Equestria Daily post ([link]) and I'm unsure about one thing. Do you have to close the main function i.e. the "Today I learned" function declaration? I would assume since it's c/java like you need to close the main function with the function close syntax "That's all about <function name>!"

In the first and second examples you should need to close the "an important lesson about friendship" function with "That's all about an important lesson about friendship!". I'm also confused with your if statement with two elses in the second example... I assume you're trying to say "go to the store and buy more cider" when the while loop is finished. If that's true you need to add an end to your while loop and place the last line of "100 bottles of cider" outside the for loop.

In this example you also declare the main function (how to sing applejack's drinking song) but never call your Applejack's drinking song function or do anything with the return (with Applejack implies you're going to return an object of Applejack type).

Therefore the implementation of "100 bottles of cider" should look more like this:

Dear Princess Celestia: Letter One

I learned applejack's drinking song.

Did you know applejack's number is 100?

I did this while applejack's number was greater than 0:

I sang applejack's number " bottles of cider on the wall " applejack's number " bottles of cider ".
applejack's number is one less.

If applejack's number was greater than 1,
I sang "take one down, pass it around, " applejack's number " bottles of cider on the wall".
That's what I did.

Otherwise,
I sang "take one down and pass it around, no more jugs of cider on the wall."
That's what I did.

That's what I did.

I sang "No more jugs of cider on the wall, no more jugs of cider. Go to the store and buy some more, 99 jugs of cider on the wall."

That's all about applejack's drinking song!

Today I learned a new song.

I remembered applejack's drinking song.

That's all about a new song!

Your faithful student, Twilight Sparkle.
Reply
Add a Comment: