<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p><span style="font-size: 12pt;">What about</span><br>
</p>
<p><br>
</p>
<p><span>{ '{|'  . '|-' . '|}' . '{{' . '}}' .  '[[' . ']]' . '__' . '==' . '::' . '**' . '##' . '''' } anySatisfy: [:pattern | self match: pattern]</span><br>
</p>
<p><span><br>
</span></p>
<p><span>?</span></p>
<p><span><br>
</span></p>
<p>Maybe also this one if the identity of the matching pattern is of interest:</p>
<p><br>
</p>
<p><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">{ '{|'  . '|-' . '|}' . '{{' . '}}' .  '[[' . ']]' . '__' . '=='
 . '::' . '**' . '##' . '''' }</span></p>
<p><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    detect: [:pattern | self match: pattern]</span><br>
</p>
<p><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    ifFound: [:pattern | self inform: 'Matched pattern: ' , pattern]</span></p>
<p><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    ifNone: [self inform: 'no match']</span></p>
<p><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span></p>
<p><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Best,</span></p>
<p><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Christoph</span></p>
<p><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span></p>
<p><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">PS: Don't use #| unless you explicitly want every method to be
 invoked always. Use #or:... instead, this is faster.</span></p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von gettimothy via Squeak-dev <squeak-dev@lists.squeakfoundation.org><br>
<b>Gesendet:</b> Samstag, 27. November 2021 17:30:38<br>
<b>An:</b> squeak-dev<br>
<b>Betreff:</b> [squeak-dev] Anybody got an elegent construct for this functional monstrosity?</font>
<div> </div>
</div>
<div>
<div style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt;">
<div>I have a ReadStream and I want to detect some substrings in it.<br>
</div>
<div><br>
</div>
<div>This works, but it is ugly.<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>
<blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);">
<div>((self match:'{|') | <br>
</div>
<div>(self match:'|-') |<br>
</div>
<div>(self match:'|}') |<br>
</div>
<div>(self match:'{{') |<br>
</div>
<div>(self match:'}}') |<br>
</div>
<div>(self match:'[[') |<br>
</div>
<div>(self match:']]') |<br>
</div>
<div>(self match:'__') |<br>
</div>
<div>(self match:'==') |<br>
</div>
<div>(self match:'::') |<br>
</div>
<div>(self match:'**') |<br>
</div>
<div>(self match:'##') |<br>
</div>
<div>(self match:'''') )<br>
</div>
</blockquote>
<br>
</div>
<div>Is anybody aware of an elegant approach to this?<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>Something along the lines of <br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>
<blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);">
<div>self matchAny: { '{|'  . '|-' . '|}' . '{{' . '}}' .  '[[' . ']]' . '__' . '==' . '::' . '**' . '##' . '''' }<br>
</div>
</blockquote>
<br>
</div>
<div><br>
</div>
<div>thx in advance</div>
</div>
<br>
</div>
</body>
</html>