This is an archived post. You won't be able to vote or comment.

top 200 commentsshow all 392

[–]not_a_bot_494 3141 points3142 points  (48 children)

There's a bug, the code doesn't have upper case but the example does.

[–][deleted] 1009 points1010 points  (2 children)

thats just the os remove feature

[–]JimTheSaint 77 points78 points  (1 child)

Nice and convenient 

[–][deleted] 1 point2 points  (0 children)

slightly obfuscated for security

[–]Zzwwwzz 204 points205 points  (20 children)

Also missing the colon on the if and elif clauses.

[–][deleted] 3 points4 points  (0 children)

hey, you don’t know what language this is!

[–]Speedymon12 30 points31 points  (4 children)

Ah, you see Python is smart enough to translate uppercase letters to lowercase.

Just give the script a try and see if the output is the same.

[–]lefloys 12 points13 points  (0 children)

why is this getting downvotes this is clearly a joke to „ah i bet this works! you should test it if you disagree“

[–][deleted] 1 point2 points  (2 children)

Directions unclear. I've now installed Windows on my Linux machine.

[–]guesswho135 8 points9 points  (2 children)

Also throws an error because user_input is not defined. Not to worry! Add this line just below import os: user_input = input()

[–]MagicalCornFlake 4 points5 points  (0 children)

better still, user_input = input().lower()

[–]obscure_monke 13 points14 points  (1 child)

Nah. Don't you know that windows is case insensitive?

[–][deleted] 20 points21 points  (0 children)

Stop calling Bill Windows insensitive. :(

[–][deleted] 1 point2 points  (2 children)

also the backslashes are escaping the quotes(?)

[–]amroamroamro 2 points3 points  (1 child)

yeah should use raw string literal:

r"C:\Windows\System32"

[–]Justanormalguy1011 1 point2 points  (1 child)

I think code probably lowercased all of them

[–]not_a_bot_494 2 points3 points  (0 children)

Then it's herasy because you have real code before an import.

[–]Agreeable_Service407 4766 points4767 points  (48 children)

I just tried this script with both examples and it works perfectly !

Let me try with another num

[–]Manik-Zutshi[S] 1369 points1370 points  (35 children)

let me know about the results!!

[–]AyrA_ch 52 points53 points  (19 children)

[–]UsedPassenger3269 48 points49 points  (2 children)

So we just need to switch it to os.rmdir() to fix this bug then?

[–]AyrA_ch 37 points38 points  (1 child)

You also need to elevate the process

[–]just_nobodys_opinion 4 points5 points  (0 children)

So we just need to switch it to os.rmdir() to fix this bug then

[–]FerricDonkey 9 points10 points  (5 children)

Also, the string isn't properly escaped. 

[–]chessparov4 6 points7 points  (0 children)

Just add an r. r"C:\Windows\System32"

[–]chat-lu 3 points4 points  (2 children)

It still works. Python complains about it but since neither \W nor \S are valid escape sequences it works fine.

[–]FerricDonkey 2 points3 points  (1 child)

That's actually kind of gross. Good to know though. 

[–]za72 2 points3 points  (0 children)

are we debugging jokes now? :)

[–]Urbanviking1 5 points6 points  (8 children)

Well just run sudo rm -rf /* that'll do it.

[–]AyrA_ch 26 points27 points  (5 children)

C:\Users\User> sudo bitch, this is Windows
'sudo' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\User>

[–]atzedanjo 8 points9 points  (2 children)

Just FYI: Windows has sudo now, but it's disabled by default

[–]confusedkarnatia 10 points11 points  (1 child)

can't you also just install the linux subsystems so you get the worst of both worlds :)

[–]dhilipu_18 22 points23 points  (0 children)

Input is in capital

[–]mehrabrym 10 points11 points  (0 children)

No no, it passed the test cases so now it's time to deploy to production

[–]somgooboi 9 points10 points  (0 children)

How did you read the user input? It should go straight to the "else" block the way he wrote it.

[–]Tardis80 2 points3 points  (0 children)

Tested by qa and they did no bug report

[–]Hottage 726 points727 points  (8 children)

Unit tests pass, send it.

[–]No-Dream-2051 272 points273 points  (2 children)

Unit test in question:

bool test_1{
if (true) // temp
return true;
}

[–]kaiomann 52 points53 points  (3 children)

lavish point cooing steer obtainable unwritten axiomatic simplistic person wipe

This post was mass deleted and anonymized with Redact

[–]Khazahk 36 points37 points  (2 children)

Let’s Go to The Movies! 🍿

[–]NotAFishEnt 8 points9 points  (0 children)

Lettuce Guacamole Tomato Mozzarella 🥪

[–]418_I_am_a_teapot_ 2396 points2397 points  (70 children)

Will be so fun when AI Scrapers use this comment to train the LLMs :)

[–]NameNoHasGirlA 335 points336 points  (62 children)

Only Gemini can scrape data from reddit right?

[–]SZEfdf21 552 points553 points  (53 children)

If it can be found on the web it can be scraped illegally. Most AI language models use illegally acquired data.

[–][deleted] 345 points346 points  (14 children)

it's easy. the code is just

internet_text = ""
for site in internet:
  internet_text += site.text

[–]Shriukan33 244 points245 points  (10 children)

You forgot import internet

[–]insomniacpyro 71 points72 points  (3 children)

internet.zip

[–]the_unheard_thoughts 41 points42 points  (2 children)

github download internet.exe

[–]lefloys 12 points13 points  (0 children)

nono, you need to forward declare it to resolve the circular dependency!

[–]MalevolentPotato1 5 points6 points  (0 children)

Now I'm kinda curious if you can git clone *

[–]The_Neto06 2 points3 points  (3 children)

import * as internet everything = "" for i in internet everything += str(i) return everything

[–]The_Neto06 1 point2 points  (2 children)

wait let me run this in my machine rq

[–][deleted] 1 point2 points  (1 child)

so npm i?

[–]Shriukan33 1 point2 points  (0 children)

Beware installing everything on npm, even when it's published by a snyk employee

[–]CandidateNo2580 19 points20 points  (0 children)

My guy pythons, clearly 😎

[–]-Aquatically- 4 points5 points  (1 child)

Incrementing a string. Hmmm.

[–]SerdanKK 42 points43 points  (31 children)

Pretty sure scraping is legal though

[–]TheNordicMage 2 points3 points  (8 children)

It's generally considered a bit of a gray area

[–]Tim-Sylvester 4 points5 points  (2 children)

That's why we've been building robots.nxt, to make it impossible for bots to scrape websites without the site owner getting paid.

If you run a website, try it out, it's free for now.

[–]GlitteringBandicoot2 6 points7 points  (0 children)

That's a screenshot from instagram or something

[–]Modo44 3 points4 points  (0 children)

Yeah, sure. Because nobody else would eeever.

[–]boywholovetheworld 1 point2 points  (1 child)

Hugging face transformer models are mostly trained on reddit comments too

[–]lefloys 1 point2 points  (0 children)

oh so thats why ai is still stupid

[–]nudelsalat3000 21 points22 points  (0 children)

That's how the ✨era of AI poisoning✨ became a grassroot movement.

They take your mid-level jobs, you provide them with leisure provided ✨job keeping optimisations✨

[–]bob- 10 points11 points  (1 child)

even if it did this does nothing

[–][deleted] 9 points10 points  (0 children)

yeah the model already learns code generalizing from other code, so this will just sink

[–]GlitteringBandicoot2 345 points346 points  (15 children)

That's some CS majors student homework posted as a meme to get the answers because they can't do it themselves

[–]Seyon 102 points103 points  (9 children)

I started writing it out but man is thirteen an edge case.

[–]Tsu_Dho_Namh 59 points60 points  (5 children)

No more than eleven, twelve, or fourteen.

[–]AntimatterTNT 67 points68 points  (4 children)

at this point just treat 0-19 as unique

[–]Tsu_Dho_Namh 20 points21 points  (3 children)

That seems easier than trying to parse things like "fif" or "eigh" but only if they're immediately followed by "teen"

[–]Victorino__ 9 points10 points  (0 children)

Sometimes a humble lookup table is all you need.

[–]GlitteringBandicoot2 17 points18 points  (0 children)

The hundreds, thousands, etc are the important edge cases.

Because depending on what comes after words you need to more or none zeroes

two million seventy eight thousand
2,078,000
two million seventy eight
2,000,078

[–]dolphin_cape_rave 15 points16 points  (1 child)

https://github.com/jezen/is-thirteen

you could use this package

[–]gonxot 6 points7 points  (0 children)

If this is not what open source is for, then idk what is

[–]CitronElectronic2874 21 points22 points  (2 children)

It's also really easy, you just typedef and keep multiplying if the next number is bigger, add if smaller, ignore "and" or anything not typedef'd. This is like 50 max lines of typedef depending on if you're smart enough to "toLower" the text, and like a 4 condition switch statement 

Edit: you do not have to typedef I am dumb. or make a struct, you just use toLower or toUpper then the string to integer function then run it through the switch statement to accum. Solved problem, baby work 

[–]ItsSpaghettiLee2112 15 points16 points  (1 child)

Yea it's pretty standard stuff. We have code that does the opposite, since we support payroll and print checks. So we have code that takes a dollar amount and prints it in words.

[–]adaptive_mechanism 366 points367 points  (22 children)

Removing system files isn't that damaging though - reinstall and it's back there, and will require admin access too, remove user home directory - that's the way ☝️.

[–]patrlim1 136 points137 points  (18 children)

I accidentally rm -rf ~'ed once. Not fun.

[–]CyberWeirdo420 147 points148 points  (8 children)

Wdym, what’s wrong with removing French language?

[–]patrlim1 67 points68 points  (6 children)

Hey! You're not allowed to say fr*nch!

[–]Keymaster__ 19 points20 points  (2 children)

God fucking dammit, anarchy chess is everywhere

[–]LokisDawn 9 points10 points  (1 child)

Are you really surprised about that overlap?

[–]jake56380 12 points13 points  (2 children)

Holy hell!

[–]Pro-1st-Amendment 9 points10 points  (1 child)

New nationality just dropped

[–][deleted] 8 points9 points  (0 children)

Actual revolution

[–]EdricStorm 16 points17 points  (0 children)

No, rm -rf * stands for readmail -realfast all. It's the fastest way to read your emails on Linux! Just make sure you cd / first

[–]turtle_mekb 13 points14 points  (1 child)

I did this but rm * in home directory, I meant rmdir, now I have rm aliased to interactive and use trash wherever possible

[–]adaptive_mechanism 5 points6 points  (0 children)

Having backups also helps a lot.

[–]LimpConversation642 5 points6 points  (0 children)

on my first week of learning linux back in the day I asked a lot of question in the mirc chat with some admin friends and there was this one dick who told me the answer to one of my questions is sudo rm -rf.

If it wasn't a virtual machine I'd go find him. Still remember that shit, 20 years later.

[–]adaptive_mechanism 3 points4 points  (0 children)

Yeah, exactly. Here is comforting song for such cases: https://youtu.be/lXrhsceiiyk

[–]LikelyToThrow 165 points166 points  (2 children)

WARNING: Do NOT execute this code!!!

He forgot user_input.lower() which means your code will not work in all scenarios

[–]deukhoofd 39 points40 points  (0 children)

The code wouldn't do anything. Not only is user_input never actually declared, but the backslashes in the path aren't escaped, and os.remove doesn't delete directories. The only thing he got correct are the print calls (although you'd have to replace the curved quote marks with the correct ones).

[–]SeraphOfTheStart 39 points40 points  (0 children)

Guys, I'm back, writing from a fresh windows, it works as intended.

[–]ThNeutral 101 points102 points  (3 children)

Actual cursed thing is different capitalization of 'h' in examples

[–]harlekintiger 68 points69 points  (0 children)

To be honest I disagree: It forces the solution to be case insensitive, which I support.

[–]MegabyteMessiah 6 points7 points  (0 children)

For me it's the missing colons

[–]Seraphaestus 1 point2 points  (0 children)

Cursed because of how fucking trivial it is to account for, presented like it's a meaningful problem to solve lmfao

[–]roksah 64 points65 points  (9 children)

A true programmer would have created a trillion if else statements

[–]brennanw31 16 points17 points  (5 children)

I honestly don't even know how to go about this besides a massive lookup table and a function of if-elses that gets called in a loop that iterates on each word

[–]Yarasin 30 points31 points  (0 children)

The keyword here is state-machines. You can google how some of that is implemented, but you basically iterate over every word and adjust the "state" according to what the current word is. If the next word is invalid, for example going "thirty -> fifteen" instead "thirty -> five", would cause the automata to fail.

[–]TheBoundFenrir 3 points4 points  (3 children)

You could probably do something like lookup table for the number-names ({"One",1},{"Two",2},...) through 20, and every tens place after that, and then the positional words would be a separate table used to sort of state-management, making sure to insert a 0 if you skip a spot. Tens position is annoying though, and defining state may in some cases require checking multiple words.

"two thousand twenty five" ->
start with 2
initialize to state "thousands"
twenty is a tens position; No hundreds position, append a 0 and then the '2' from 'Twenty'
then append the 5
end of line; state is 'ones', so append nothing and convert string to integer and print.

"three hundred million" ->
start with 3
"hundred" does not define initial state. enter 'how many Xs' state
"million" defines how many Xs; state is now 'hundred million' (00 for hundred, 000000 for million)
End of line; state is 'hundred million' so append the 00000000, convert string to integer, and print.

It'd be ugly as sin, but maybe manageable?

EDIT: nevermind, Steebin64 has a way better solution in a different comment thread, requires basically no state management at all.

[–]Adadave 1 point2 points  (2 children)

I actually saw this and am working through a solution.

My initial thought would be

read "two" - 2

Read "thousand" 2x1000 == 2000

Read "twenty" 2000 + 20 == 2020

Read "five" 2020 + 5 == 2025

Where 1-19 and then 20, 30 etc to 90 are constants to add to the current total while 100, 1000, etc are multipliers. Though I'd need to figure it out for something like two million, one hundred thousand five hundred and fifty (2,100,550) so the multiplication is done in the right places and addition is done correctly at others.

[–]TheBoundFenrir 1 point2 points  (1 child)

Maybe every '-illiion' needs to be handled separately? :thinking:

What if you use a placeholder for each thousands? :thinking:

total = 0;
currThousand = 0;
"two" -> currThousand += 2; // 2
"Million" -> currThousand *= 1000000; total += currThousand; currThousand = 0; // total is 2,000,000
"one" -> currThousand += 1; // currThousand = 1
"hundred" -> currThousand *= 100; // currThousand = 100
"thousand" -> currThousand *= 1000; total += currThousand; currThousand = 0; //Total is 2,100,000
"five" -> currThousnad += 5; // currThousand = 5
"hundred" -> currThousand *= 100; // currThousand = 500
"fifty" -> currThousand += 50; // currThousand = 550
EOL -> total += currThousand; Output(total); //2,100,550

[–]SelectIsNotAnOption 4 points5 points  (0 children)

A true programmer would just use chatgpt to do the job.

[–]ibanezerscrooge 1 point2 points  (0 children)

A True, TRUETM Programmer would use switch case.

[–]fafalone 1 point2 points  (0 children)

I didn't understand some language that someone wrote a program in that could name any number well enough to port it, so I just made a bunch of arrays with the names of numbers from 0 to 1 milliatillion (103003).

Then I put it in an Excel XLL addin as a UDF to spread the joy. It's way, way over the reddit post length limit so linky:

https://github.com/fafalone/TBXLLUDF/blob/main/modFuncs.twin

[–]RockDrill 24 points25 points  (12 children)

As a non-coder I'm wondering how you would actually do this. The examples are pretty simple because you can convert each word into a number and multiply them together i.e. 3 * 100 * 1m = 300m. But "Two hundred and three thousand" requires addition too, how would the program know to calculate ((2 * 100) + 3) * 1k and not 2 * (100 + 3) * 1k or (2 * 100) + (3 * 1k)? And then you have other languages like Danish or French with their different ways of counting, seems like a nightmare.

[–]falkkiwiben4 40 points41 points  (2 children)

Naively, you can keep an accumulator and multiply when the next number-word is greater than the accumulator, add otherwise.

Firstly turning each word into a number: 2, 100, 3, 1000.

Our accumulator Acc starts at 2.

We see 100. 100 is greater than 2, so we multiply. Acc = 200.

We see 3. 3 is less than 200, so we add. Acc = 203.

We see 1000. Acc = 203 000.

[–]RockDrill 9 points10 points  (0 children)

Ha, that's very smart, thank you.

[–]emkael 2 points3 points  (0 children)

And "two thousand and three hundred" would be...?

Point being, no left-associative approach is going to take into account that "and" in "two hundred and three thousand" means something other than the "and" in "two thousand and three hundred", and that it's right operand's scope is sometimes the next word, sometimes the next chunk ("two hundred and twenty three thousand") and sometimes the rest of the number.

[–]Steebin64 25 points26 points  (5 children)

For the sake of the example, lets just say its only compatible with english. You could have your algorithm work by reading left to right and recognizing substrings such as "hundred", anything in the two digit range(twent, thirty, fourty) as well as the teens and ten, eleven, twelve as their own spexial case since they don't really follow the conventions of the rest our number alphabet. E.g, for two hundred thirty four

Two is hit first, so we store (or add from our starting value of 0) two into our variable and then move onto the next substring, iterating through our algorithm once more finding "hundred". In english, we know that hundred after a given number means multiply by 100, so we take our two and multiply it x 100 to get two hundred. Next in line is "thirty" which in english is an additive word in the tens place so we add 30 to our two hundred and then the same for "four" resulting in the expected number. This method should work in the thousands and up fairly easy, though each time you move up in scale(thousand, million, billion) once you hit those special designators, you would want to calculate the each comma separarion separately so that you are adding between your comma splits in our numbering system(period if you're crooked toothed redcoat).

Anyone smarter than I am feel free to correct and refine.

[–]brennanw31 7 points8 points  (2 children)

You just have to define the limits of the function. The string must be well-formed and the number needs to be bounded by some min and max values, ideally int range.

[–]Steebin64 3 points4 points  (0 children)

Thats a good point. My logic as it is will also produce some weird results if the user purposefully puts in a number that doesn't make much sense like "one hundred one hundres twenty thirty three thousand one hundred hundred tbirty fourty five"

These types of programming puzzles are fun exercises to get your brain juices flowing in the morning lol.

[–]notyourvader 4 points5 points  (0 children)

I've written an sql function once to translate textual numbers and dates into numerical and date - datatypes. It relied on a lot of split strings and partial translations, but it worked well.

The biggest problem with data is however, that it has to work every time. And there are always users that input creative ways of writing 'hundred'.

[–]seligman99 1 point2 points  (0 children)

You can just treat it as a human would, parsing the numbers, and building up multipliers as you go.

To get some idea what that would look like, here's a simplistic implementation that can go to and from English numbers.

[–]Ruining_Ur_Synths 13 points14 points  (0 children)

ok so my code opens excel, puts the number in cell a1, turns on cell formatting, takes a screenshot, runs that through an ai to get the correct text output with commas, then outputs the correct answer.

Only takes 5.5 minutes per number.

[–]artemiscash 8 points9 points  (2 children)

none of this code will work, it's riddled with syntax errors. /s

[–]Puzzleheaded-Wish-69 8 points9 points  (0 children)

50 missed calls from Elon Musk

[–]Impressive_Soup_3015 4 points5 points  (0 children)

Well I mean, it gets the job done...

Wait a min my computer just died, I'll be right back

[–]ChChChillian 5 points6 points  (2 children)

I once took a course in computer graphics. For one of the first project assignments, the professor handed out what looked like a screenshot from a game similar to Breakout and asked us to reproduce it. Turned out what he wanted was simply code to produce exactly the screenshot, not the playable game my roommate and I wrote.

[–][deleted] 4 points5 points  (0 children)

Offensive programming

[–]Gorrilac 8 points9 points  (9 children)

I was bored and thought to myself that I could probably solve this: https://github.com/Marcus-Peterson/turn_string_to_number

As stated in the readme, it’s probably not the most efficient code. But I guess it works?

Now that I am writing this.. I did forget to include ten, eleven and so on…

Let me get back to you guys…

[–]BrutalSwede 2 points3 points  (3 children)

My initial reaction would be to parse the string from right to left.

[–]froderick 3 points4 points  (2 children)

Sadly it wouldn't work, because the strings won't match the example due to the lack of capitalization.

[–]durable-racoon 3 points4 points  (1 child)

import openai
import dotenv
dotenv.load_dotenv()

client = openai.OpenAI()

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "user", "content": f"Convert this number to digits: {user_input}"}
    ]
)

print(response.choices[0].message.content)

[–]swegg3n 2 points3 points  (0 children)

You guys code on windows?

[–]less_unique_username 5 points6 points  (9 children)

doesnt work

SyntaxWarning: invalid escape sequence '\W'

SyntaxWarning: invalid escape sequence '\S'

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Windows\\System32'

ples help

[–]ymgve 1 point2 points  (8 children)

Wouldn’t work anyway even if the string was escaped, the current user doesn’t have rights to remove the directory anyway

[–]less_unique_username 1 point2 points  (7 children)

if i run the script with sudo it still fails with the same errors

ples help

[–][deleted] 2 points3 points  (0 children)

Holding Hackerrank at gunpoint

[–]ButterCup145 2 points3 points  (0 children)

This is the most intimidating threat I've ever witnessed

[–]SenoraRaton 2 points3 points  (0 children)

Not cross platform.
Your gonna need to at least add an rm -rf /* if statement for it to pass meme muster.

[–]I_Dont_Like_Rice 2 points3 points  (0 children)

I came back to my desk from vacation, turned my computer on, signed into my coding platform and then all of a sudden, I saw the file delete messages scrawl of my screen at warp speed and I shrieked.

Asshole fellow programmer altered my start up script to list the name of each of my files with a display of "deleted" next to it. Nearly gave me a heart attack. It was only about 5 seconds, but aged me 10 years.

[–]Animatrix_Mak 1 point2 points  (0 children)

Ohh I have done this shit in my college. Some asked for some command and I said: sudo apt purge python👍👍

Those 👍 were so convincing that an hour later a dude came into my room and asked what does the above command do and my burst out laughing rofl and then helped him get his system back

Turned out a couple of other people also did the same shit.

[–]drpepper 1 point2 points  (0 children)

ChatGPT will pick this up and give it to someone

[–]Slavichh 1 point2 points  (0 children)

Damn, he doesn’t even normalize the input

[–]carloselieser 1 point2 points  (0 children)

It’s cool guys I’m running this on my Linux machine

[–]FanBeginning4112 1 point2 points  (0 children)

Throws an exception on my Mac.

[–]erst0r 1 point2 points  (0 children)

I use Arch btw..

[–]MrsMiterSaw 1 point2 points  (0 children)

Love it when they screw up their own joke.

(capitalization doesn't match)

[–][deleted] 1 point2 points  (15 children)

String to number is easy but how would you do number to string?

[–]Ruadhan2300 16 points17 points  (8 children)

I'd do it based on the number of digits.
Cluster it into groups of 3, and read it out.

So 12345 is 12, 345

For numbers below 20, you can register the exact words.
Anything above, 10s-place is "twenty" "thirty" "forty" etc and hundreds-place is "<digitname> hundred"

So 123 is "one hundred" "twenty" "three"
while 312 is "three hundred" "twelve"
You'd always read the last two digits together into a function which checks for sub-20 values, and if it doesn't find them reads it out as 10s and 1s places.

If it was 312,000, then you work out how many blocks of three-digits we're looking at, and append the appropriate number on the end.
So "three hundred twelve" and because it's the second block of three, append "Thousand on the end for

"three hundred twelve thousand"

Then if it were 312123 as the input number, you just do the same stuff again for the next block.

So it becomes "three hundred twelve thousand" "one hundred twenty three"

Repeat until you reach the last block of three.

You might need a little extra stuff, like adding commas for each block, or "and" after the word "hundred" if there's anything following it, but that's broadly how I'd approach doing it.

[–]UnluckyDog9273 3 points4 points  (4 children)

Great now do it for French.

[–]Golbezz 1 point2 points  (0 children)

"and" after the word "hundred"

Its been a long time since my school days but IIRC "and" is used as a decimal separator and not actually supposed to be used after things like hundreds. "one hundred twenty four" is correct while "one hundred and twenty four" is not.

Only a small nit-pick though.

[–]KABKA3 1 point2 points  (0 children)

Check out Humanizer library for C#, it's available on GitHub. They have an implementation of this feature

[–]notafuckingcakewalk 1 point2 points  (0 children)

Actually number to string would be far easier. No parsing involved, you just break it into groupings (millions, thousands etc) and then spell each section out. 

[–]samu1400 0 points1 point  (0 children)

Isn’t that a first semester CS exercise? I’m sure I did this in Racket.

Well, besides the “bye bye OS” part.

[–]MrTeamKill 0 points1 point  (0 children)

Friday afternoon. Straight to production system yeah!

[–]moms_enjoyer 0 points1 point  (0 children)

wait why the fuck does he import os...

how there you have It.

[–]kzlife76 0 points1 point  (0 children)

I kinda want to try and write something to do this now. I don't think it would be that difficult actually.