diff --git a/pymbolic/__init__.py b/pymbolic/__init__.py
index 04a06f0ddeb63b47a4cf0dbe9d8bf20993746918..dab56317113ac5f67fc629b21add34266aaf3674 100644
--- a/pymbolic/__init__.py
+++ b/pymbolic/__init__.py
@@ -13,6 +13,7 @@ import pymbolic.primitives
 from pymbolic.polynomial import Polynomial
 
 var = pymbolic.primitives.Variable
+variables = pymbolic.primitives.variables
 flattened_sum = pymbolic.primitives.flattened_sum
 subscript = pymbolic.primitives.subscript
 flattened_product = pymbolic.primitives.flattened_product
diff --git a/pymbolic/primitives.py b/pymbolic/primitives.py
index 6af60d8bc713e4e848e4c008c4a05b7eccc289a9..047bca8026f79146caf157ee22162d6f5ad32e66 100644
--- a/pymbolic/primitives.py
+++ b/pymbolic/primitives.py
@@ -880,7 +880,7 @@ def quotient(numerator, denominator):
 
 
 
-# tool functions --------------------------------------------------------------
+# {{{ tool functions --------------------------------------------------------------
 global VALID_CONSTANT_CLASSES
 global VALID_OPERANDS
 VALID_CONSTANT_CLASSES = (int, float, complex)
@@ -1003,4 +1003,12 @@ def make_sym_vector(name, components):
 
 
 
+def variables(s):
+    return [Variable(s_i) for s_i in s.split() if s_i]
+
+# }}}
+
+
+
+
 # vim: foldmethod=marker