Implement sort
diff --git a/func.go b/func.go
index 49b17b6..7199b8c 100644
--- a/func.go
+++ b/func.go
@@ -4,6 +4,7 @@
 	"fmt"
 	"os/exec"
 	"path/filepath"
+	"sort"
 	"strconv"
 	"strings"
 )
@@ -60,7 +61,25 @@
 
 // filter
 // filter-out
-// sort
+
+func funcSort(ev *Evaluator, args []string) string {
+	if len(args) <= 0 {
+		panic(fmt.Sprintf("*** insufficient number of arguments (%d) to function `sort'.", len(args)))
+	}
+	toks := splitSpaces(ev.evalExpr(strings.Join(args, ",")))
+	sort.Strings(toks)
+
+	// Remove duplicate words.
+	var prev string
+	var result []string
+	for _, tok := range toks {
+		if prev != tok {
+			result = append(result, tok)
+			prev = tok
+		}
+	}
+	return strings.Join(result, " ")
+}
 
 func numericValueForFunc(ev *Evaluator, a string, funcName string, nth string) int {
 	a = strings.TrimSpace(ev.evalExpr(a))