I've been slowly learning Nim and have come up with something I like to do with Python, which is log things.
This is a simple script that will create 'input', 'output', and 'logs' directories, which are separated by date / time inside those directories. Not sure if this will help anyone else, but I really like things like this: import os, streams, strformat, times proc logging(message: string, log_dir: string) = var stream = newFileStream(&"{log_dir}/logs.txt", fmAppend) try: echo(&"[INFO]: {message}") stream.writeLine(&"[INFO]: {message}") except IOError: echo(&"[ERROR]: {message}") stream.writeLine(&"[ERROR]: {message}") finally: stream.close() var now = times.now() var date = now.format("MM-dd-yyyy") var hms = now.format("HH-mm-ss") var timestamp = &"{date}_{hms}" var directories = ["input", &"input/{timestamp}", "output", &"output/{timestamp}", "logs", &"logs/{timestamp}"] for directory in directories: if not dirExists(directory): createDir(directory) echo(&"[INFO]: Created directory: {directory}") else: echo(&"[INFO]: Directory already exists: {directory}") logging(&"Created directories: {directories}", directories[5]) Run I still haven't gotten a firm grasp on the difference between proc and functions, as they seem pretty similar, save for the weird equals sign on the proc. I'm still wrapping my head around Nim, but it's fun. Coming from a Python background, all the let / var stuff will take some getting used to (reminds me too much of Javascript). Anyway, here it is. I tried to make the variable names in such a way that the code pretty much explains itself. However, if anyone wants me to walk them through the code, I'll be happy to do so.