From a952ae451cc27d5de3877bb522db6c050532ea2a Mon Sep 17 00:00:00 2001 From: Vladimir Azarov Date: Sun, 25 May 2025 23:46:06 +0200 Subject: Nested expressions --- common.sml | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'common.sml') diff --git a/common.sml b/common.sml index 02c3724..e947e0f 100644 --- a/common.sml +++ b/common.sml @@ -134,6 +134,15 @@ in fun printf g = Fold.fold ctx g end +fun sprintf g = +let + val buf = ref [] + fun output s = buf := s :: !buf + fun finish _ = String.concat $ rev $ !buf +in + Fold.fold ((false, makePrintfBase output), finish) +end g + fun Printf out g = Fold.fold ((false, out), fn _ => ()) g local -- cgit v1.2.3