#{ lib }: let lib = import; filePath = ./example.txt; # Path to the file fileContent = builtins.readFile filePath; lines = lib.strings.splitString "\n" fileContent; filterNonEmpty = word: word != ""; isEmptyPair = pair: (pair[0] == null || pair[0] == "") && (pair[1] == null || pair[1] == ""); processWord = word: lib.strings.toInt word; processLine = line: map processWord (lib.lists.filter filterNonEmpty (lib.strings.splitString " " line)); calculateDistance = pairs: let x = builtins.elemAt pairs 0; y = builtins.elemAt pairs 1; in y - x; processedLines = lib.lists.filter (list: (builtins.length list) > 0) (map processLine lines); distances = map calculateDistance processedLines; sum = lib.lists.fold (a: b: a + b) 0 distances; in sum