From 008addccfebcdec83e67a3164c794d4eda64974d Mon Sep 17 00:00:00 2001 From: "Andrew V. Louis" <13123840+avlouis@users.noreply.github.com> Date: Fri, 24 Oct 2025 14:37:57 -0500 Subject: [PATCH 1/2] Implementing a ternary conditional as IfElseInline. --- README.md | 12 ++++++++++++ algorithmic.typ | 3 +++ tests/ifelseinline/.gitignore | 4 ++++ tests/ifelseinline/ref/1.png | Bin 0 -> 6353 bytes tests/ifelseinline/test.typ | 7 +++++++ 5 files changed, 26 insertions(+) create mode 100644 tests/ifelseinline/.gitignore create mode 100644 tests/ifelseinline/ref/1.png create mode 100644 tests/ifelseinline/test.typ diff --git a/README.md b/README.md index c23ad87..752e215 100644 --- a/README.md +++ b/README.md @@ -266,6 +266,18 @@ IfElseChain( // Alternating content and bits image of an ifelsechain statement with condition x < y and conditional statement assign y to x, then condition x + +IfElseInline +IfElseInline(condition: content, true-case: content, false-case: content) + + +```typst +Assign($m$, IfElseInline($x < y$, $x$, $y$)) +``` + + + + diff --git a/algorithmic.typ b/algorithmic.typ index fd42ba7..76f92bb 100644 --- a/algorithmic.typ +++ b/algorithmic.typ @@ -202,6 +202,9 @@ } result } +#let IfElseInline(condition, true-case, false-case) = ( + [#true-case *if* #condition *else* #false-case], +) // Instructions #let Assign(var, val) = (var + " " + $<-$ + " " + arraify(val).join(", "),) diff --git a/tests/ifelseinline/.gitignore b/tests/ifelseinline/.gitignore new file mode 100644 index 0000000..40223be --- /dev/null +++ b/tests/ifelseinline/.gitignore @@ -0,0 +1,4 @@ +# generated by tytanic, do not edit + +diff/** +out/** diff --git a/tests/ifelseinline/ref/1.png b/tests/ifelseinline/ref/1.png new file mode 100644 index 0000000000000000000000000000000000000000..eafa43b645f124f36513f45a700bcf9659ed6f34 GIT binary patch literal 6353 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 Date: Wed, 29 Oct 2025 20:17:58 -0500 Subject: [PATCH 2/2] Adding example image to README. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 752e215..8aa7dfc 100644 --- a/README.md +++ b/README.md @@ -276,7 +276,7 @@ Assign($m$, IfElseInline($x < y$, $x$, $y$)) ``` - +image of an ifelseinline expression with condition x < y, true expression x, and false expression y being assigned to m