crossed out 44 is still regular 44 ;(

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP








up vote
14
down vote

favorite












Introduction



On March 24th, 2015 @isaacg golfed his Pyth answer from 44 to 42 bytes. Since a crossed out 44 (44) looks a lot like a regular 44, @Optimizer made the following comment:




striked out 44 is still normal 44 :(




After that, on October 21st, 2015, @Doorknob♦ golfed his Ruby answer from 44 to 40 (and later 38) bytes and added the following part to his answer, with a link to that original comment of @Optimizer:




crossed out 44 is still regular 44 ;(




This was the start of an answer-chaining meme, where every crossed out 44 (and in some occasions 4 or 444) linked back to the previous one.



Then on April 8th, 2017 (I'm not sure if this was the first answer to do so, but it's the earliest one I could find), @JonathanAllan golfed his Python answer from 44 to 39. He however used <s>&nbsp;44&nbsp;</s> so the 44 would look like this:  44 , and added the following to his answer:




Crossed out &nbsp;44&nbsp; is no longer 44 :)




And that was basically the (beginning of the) end of the meme.



Challenge



As for this challenge: Given a list of positive integers and a date, output the list comma-and-space separated where every number except for the last one is placed between <s>...</s> tags.



In addition, if any of the crossed out numbers is in the sequence [4, 44, 444, 4444, ...] (A00278 on oeis.org):



  • If the date is before April 8th, 2017: Also output the exact (all lowercase and with semicolon emoticon) text crossed out N is still regular N ;( (N being the crossed out number from the sequence) on a second line.

  • If the date is April 8th, 2017 or later: The crossed out number N from the sequence should have the leading and trailing &nbsp; added. No need for any additional lines of output.

Examples:



Input: list = [50, 48, 44, 41], date = January 1st, 2017

Output:



<s>50</s>, <s>48</s>, <s>44</s>, 41
crossed out 44 is still regular 44 ;(


Input: list = [500, 475, 444, 301, 248], date = June 2nd, 2018

Output:



<s>500</s>, <s>475</s>, <s>&nbsp;444&nbsp;</s>, <s>301</s>, 248


Challenge rules:



  • You can assume the input-list is a sorted list from largest to smallest, only containing positive integers. In reality a byte-count can also go up due to bug-fixes, but for the sake of this challenge we pretend it only goes down.

  • You can assume only a single number from the sequence [4, 44, 444, 4444, ...] is present in the input-list (if any).

  • The output format is either printed to STDOUT, or returned as a string (or character array/list/2D-array if that's preferable). A trailing newline is of course optional.

  • The output format is strict. <s>...</s> is mandatory; &nbsp;...&nbsp; is mandatory; ", " (comma and space) is mandatory; and ncrossed out ... is still regular ... ;( exactly is mandatory (on a separated line).

  • You may take the input-date as date-objects; timestamps; loose integers for year, month, and day; a single number in the format yyyyMMdd; integer days since December 31st, 1899 (which would be 42832 for April 8th, 2017); or any other reasonable input-format. The date if-statement isn't the major part of this challenge.

  • The input integer-list can also be a list of strings if you want.

  • You don't have to add the <sup>...</sup> tags to the crossed out ... is still regular ... ;( line as is usually done with the actual meme answers.

  • You can assume the input-list will never contain byte-counts outside the [1, 50000] range (so you'll only have these five 4, 44, 444, 4444, 44444 to worry about).

General rules:



  • This is code-golf, so shortest answer in bytes wins.

    Don't let code-golf languages discourage you from posting answers with non-codegolfing languages. Try to come up with an as short as possible answer for 'any' programming language.


  • Standard rules apply for your answer, so you are allowed to use STDIN/STDOUT, functions/method with the proper parameters and return-type, full programs. Your call.


  • Default Loopholes are forbidden.

  • If possible, please add a link with a test for your code.

  • Also, adding an explanation for your answer is highly recommended.

Test cases:



Input: [50, 48, 44, 41] and January 1st, 2017 
Output:
<s>50</s>, <s>48</s>, <s>44</s>, 41
crossed out 44 is still regular 44 ;(

Input: [500, 475, 444, 301, 248] and June 2nd, 2018
Output:
<s>500</s>, <s>475</s>, <s>&nbsp;444&nbsp;</s>, <s>301</s>, 248

Input: [8, 6, 4] and December 5th, 2017
Output:
<s>8</s>, <s>6</s>, 4

Input: [8, 6, 4, 3, 2] and September 15th, 2015
Output:
<s>8</s>, <s>6</s>, <s>4</s>, <s>3</s>, 2
crossed out 4 is still regular 4 ;(

Input: [119, 99, 84, 82, 74, 60, 51, 44, 36, 34] and February 29th, 2016
Output:
<s>119</s>, <s>99</s>, <s>84</s>, <s>82</s>, <s>74</s>, <s>60</s>, <s>51</s>, <s>44</s>, <s>36</s>, 34
crossed out 44 is still regular 44 ;(

Input: [404, 123, 44] and March 4th, 2016
Output:
<s>404</s>, <s>123</s>, 44

Input: [4, 3] and April 8th, 2017
Output:
<s>&nbsp;4&nbsp;</s>, 3

Input: [44] and October 22nd, 2017
Output:
44

Input: [50000, 44444, 1500] and August 1st, 2018
Output:
<s>50000</s>, <s>&nbsp;44444&nbsp;</s>, 1500

Input: 50, 38, 23 and September 8th, 2001
Output:
<s>50</s>, <s>38</s>, 23









share|improve this question























  • Your last test case is missing its date?
    – Neil
    Aug 8 at 8:47










  • @Neil Ah oops.. Fixed. Date doesn't really matter for that one, but added one regardless. Thanks for noticing.
    – Kevin Cruijssen
    Aug 8 at 8:49






  • 1




    I can confirm that I had not noticed anyone use the non-breaking space for this specific purpose and that was why I wrote the "no longer" text.
    – Jonathan Allan
    Aug 8 at 9:16










  • (I can also confirm that I had used it prior to using it with 44 - I believe that is when I first used them)
    – Jonathan Allan
    Aug 8 at 9:35










  • As we can take input as days since 1889-12-31, can we also take days since 2017-04-08?
    – TFeld
    Aug 8 at 11:49














up vote
14
down vote

favorite












Introduction



On March 24th, 2015 @isaacg golfed his Pyth answer from 44 to 42 bytes. Since a crossed out 44 (44) looks a lot like a regular 44, @Optimizer made the following comment:




striked out 44 is still normal 44 :(




After that, on October 21st, 2015, @Doorknob♦ golfed his Ruby answer from 44 to 40 (and later 38) bytes and added the following part to his answer, with a link to that original comment of @Optimizer:




crossed out 44 is still regular 44 ;(




This was the start of an answer-chaining meme, where every crossed out 44 (and in some occasions 4 or 444) linked back to the previous one.



Then on April 8th, 2017 (I'm not sure if this was the first answer to do so, but it's the earliest one I could find), @JonathanAllan golfed his Python answer from 44 to 39. He however used <s>&nbsp;44&nbsp;</s> so the 44 would look like this:  44 , and added the following to his answer:




Crossed out &nbsp;44&nbsp; is no longer 44 :)




And that was basically the (beginning of the) end of the meme.



Challenge



As for this challenge: Given a list of positive integers and a date, output the list comma-and-space separated where every number except for the last one is placed between <s>...</s> tags.



In addition, if any of the crossed out numbers is in the sequence [4, 44, 444, 4444, ...] (A00278 on oeis.org):



  • If the date is before April 8th, 2017: Also output the exact (all lowercase and with semicolon emoticon) text crossed out N is still regular N ;( (N being the crossed out number from the sequence) on a second line.

  • If the date is April 8th, 2017 or later: The crossed out number N from the sequence should have the leading and trailing &nbsp; added. No need for any additional lines of output.

Examples:



Input: list = [50, 48, 44, 41], date = January 1st, 2017

Output:



<s>50</s>, <s>48</s>, <s>44</s>, 41
crossed out 44 is still regular 44 ;(


Input: list = [500, 475, 444, 301, 248], date = June 2nd, 2018

Output:



<s>500</s>, <s>475</s>, <s>&nbsp;444&nbsp;</s>, <s>301</s>, 248


Challenge rules:



  • You can assume the input-list is a sorted list from largest to smallest, only containing positive integers. In reality a byte-count can also go up due to bug-fixes, but for the sake of this challenge we pretend it only goes down.

  • You can assume only a single number from the sequence [4, 44, 444, 4444, ...] is present in the input-list (if any).

  • The output format is either printed to STDOUT, or returned as a string (or character array/list/2D-array if that's preferable). A trailing newline is of course optional.

  • The output format is strict. <s>...</s> is mandatory; &nbsp;...&nbsp; is mandatory; ", " (comma and space) is mandatory; and ncrossed out ... is still regular ... ;( exactly is mandatory (on a separated line).

  • You may take the input-date as date-objects; timestamps; loose integers for year, month, and day; a single number in the format yyyyMMdd; integer days since December 31st, 1899 (which would be 42832 for April 8th, 2017); or any other reasonable input-format. The date if-statement isn't the major part of this challenge.

  • The input integer-list can also be a list of strings if you want.

  • You don't have to add the <sup>...</sup> tags to the crossed out ... is still regular ... ;( line as is usually done with the actual meme answers.

  • You can assume the input-list will never contain byte-counts outside the [1, 50000] range (so you'll only have these five 4, 44, 444, 4444, 44444 to worry about).

General rules:



  • This is code-golf, so shortest answer in bytes wins.

    Don't let code-golf languages discourage you from posting answers with non-codegolfing languages. Try to come up with an as short as possible answer for 'any' programming language.


  • Standard rules apply for your answer, so you are allowed to use STDIN/STDOUT, functions/method with the proper parameters and return-type, full programs. Your call.


  • Default Loopholes are forbidden.

  • If possible, please add a link with a test for your code.

  • Also, adding an explanation for your answer is highly recommended.

Test cases:



Input: [50, 48, 44, 41] and January 1st, 2017 
Output:
<s>50</s>, <s>48</s>, <s>44</s>, 41
crossed out 44 is still regular 44 ;(

Input: [500, 475, 444, 301, 248] and June 2nd, 2018
Output:
<s>500</s>, <s>475</s>, <s>&nbsp;444&nbsp;</s>, <s>301</s>, 248

Input: [8, 6, 4] and December 5th, 2017
Output:
<s>8</s>, <s>6</s>, 4

Input: [8, 6, 4, 3, 2] and September 15th, 2015
Output:
<s>8</s>, <s>6</s>, <s>4</s>, <s>3</s>, 2
crossed out 4 is still regular 4 ;(

Input: [119, 99, 84, 82, 74, 60, 51, 44, 36, 34] and February 29th, 2016
Output:
<s>119</s>, <s>99</s>, <s>84</s>, <s>82</s>, <s>74</s>, <s>60</s>, <s>51</s>, <s>44</s>, <s>36</s>, 34
crossed out 44 is still regular 44 ;(

Input: [404, 123, 44] and March 4th, 2016
Output:
<s>404</s>, <s>123</s>, 44

Input: [4, 3] and April 8th, 2017
Output:
<s>&nbsp;4&nbsp;</s>, 3

Input: [44] and October 22nd, 2017
Output:
44

Input: [50000, 44444, 1500] and August 1st, 2018
Output:
<s>50000</s>, <s>&nbsp;44444&nbsp;</s>, 1500

Input: 50, 38, 23 and September 8th, 2001
Output:
<s>50</s>, <s>38</s>, 23









share|improve this question























  • Your last test case is missing its date?
    – Neil
    Aug 8 at 8:47










  • @Neil Ah oops.. Fixed. Date doesn't really matter for that one, but added one regardless. Thanks for noticing.
    – Kevin Cruijssen
    Aug 8 at 8:49






  • 1




    I can confirm that I had not noticed anyone use the non-breaking space for this specific purpose and that was why I wrote the "no longer" text.
    – Jonathan Allan
    Aug 8 at 9:16










  • (I can also confirm that I had used it prior to using it with 44 - I believe that is when I first used them)
    – Jonathan Allan
    Aug 8 at 9:35










  • As we can take input as days since 1889-12-31, can we also take days since 2017-04-08?
    – TFeld
    Aug 8 at 11:49












up vote
14
down vote

favorite









up vote
14
down vote

favorite











Introduction



On March 24th, 2015 @isaacg golfed his Pyth answer from 44 to 42 bytes. Since a crossed out 44 (44) looks a lot like a regular 44, @Optimizer made the following comment:




striked out 44 is still normal 44 :(




After that, on October 21st, 2015, @Doorknob♦ golfed his Ruby answer from 44 to 40 (and later 38) bytes and added the following part to his answer, with a link to that original comment of @Optimizer:




crossed out 44 is still regular 44 ;(




This was the start of an answer-chaining meme, where every crossed out 44 (and in some occasions 4 or 444) linked back to the previous one.



Then on April 8th, 2017 (I'm not sure if this was the first answer to do so, but it's the earliest one I could find), @JonathanAllan golfed his Python answer from 44 to 39. He however used <s>&nbsp;44&nbsp;</s> so the 44 would look like this:  44 , and added the following to his answer:




Crossed out &nbsp;44&nbsp; is no longer 44 :)




And that was basically the (beginning of the) end of the meme.



Challenge



As for this challenge: Given a list of positive integers and a date, output the list comma-and-space separated where every number except for the last one is placed between <s>...</s> tags.



In addition, if any of the crossed out numbers is in the sequence [4, 44, 444, 4444, ...] (A00278 on oeis.org):



  • If the date is before April 8th, 2017: Also output the exact (all lowercase and with semicolon emoticon) text crossed out N is still regular N ;( (N being the crossed out number from the sequence) on a second line.

  • If the date is April 8th, 2017 or later: The crossed out number N from the sequence should have the leading and trailing &nbsp; added. No need for any additional lines of output.

Examples:



Input: list = [50, 48, 44, 41], date = January 1st, 2017

Output:



<s>50</s>, <s>48</s>, <s>44</s>, 41
crossed out 44 is still regular 44 ;(


Input: list = [500, 475, 444, 301, 248], date = June 2nd, 2018

Output:



<s>500</s>, <s>475</s>, <s>&nbsp;444&nbsp;</s>, <s>301</s>, 248


Challenge rules:



  • You can assume the input-list is a sorted list from largest to smallest, only containing positive integers. In reality a byte-count can also go up due to bug-fixes, but for the sake of this challenge we pretend it only goes down.

  • You can assume only a single number from the sequence [4, 44, 444, 4444, ...] is present in the input-list (if any).

  • The output format is either printed to STDOUT, or returned as a string (or character array/list/2D-array if that's preferable). A trailing newline is of course optional.

  • The output format is strict. <s>...</s> is mandatory; &nbsp;...&nbsp; is mandatory; ", " (comma and space) is mandatory; and ncrossed out ... is still regular ... ;( exactly is mandatory (on a separated line).

  • You may take the input-date as date-objects; timestamps; loose integers for year, month, and day; a single number in the format yyyyMMdd; integer days since December 31st, 1899 (which would be 42832 for April 8th, 2017); or any other reasonable input-format. The date if-statement isn't the major part of this challenge.

  • The input integer-list can also be a list of strings if you want.

  • You don't have to add the <sup>...</sup> tags to the crossed out ... is still regular ... ;( line as is usually done with the actual meme answers.

  • You can assume the input-list will never contain byte-counts outside the [1, 50000] range (so you'll only have these five 4, 44, 444, 4444, 44444 to worry about).

General rules:



  • This is code-golf, so shortest answer in bytes wins.

    Don't let code-golf languages discourage you from posting answers with non-codegolfing languages. Try to come up with an as short as possible answer for 'any' programming language.


  • Standard rules apply for your answer, so you are allowed to use STDIN/STDOUT, functions/method with the proper parameters and return-type, full programs. Your call.


  • Default Loopholes are forbidden.

  • If possible, please add a link with a test for your code.

  • Also, adding an explanation for your answer is highly recommended.

Test cases:



Input: [50, 48, 44, 41] and January 1st, 2017 
Output:
<s>50</s>, <s>48</s>, <s>44</s>, 41
crossed out 44 is still regular 44 ;(

Input: [500, 475, 444, 301, 248] and June 2nd, 2018
Output:
<s>500</s>, <s>475</s>, <s>&nbsp;444&nbsp;</s>, <s>301</s>, 248

Input: [8, 6, 4] and December 5th, 2017
Output:
<s>8</s>, <s>6</s>, 4

Input: [8, 6, 4, 3, 2] and September 15th, 2015
Output:
<s>8</s>, <s>6</s>, <s>4</s>, <s>3</s>, 2
crossed out 4 is still regular 4 ;(

Input: [119, 99, 84, 82, 74, 60, 51, 44, 36, 34] and February 29th, 2016
Output:
<s>119</s>, <s>99</s>, <s>84</s>, <s>82</s>, <s>74</s>, <s>60</s>, <s>51</s>, <s>44</s>, <s>36</s>, 34
crossed out 44 is still regular 44 ;(

Input: [404, 123, 44] and March 4th, 2016
Output:
<s>404</s>, <s>123</s>, 44

Input: [4, 3] and April 8th, 2017
Output:
<s>&nbsp;4&nbsp;</s>, 3

Input: [44] and October 22nd, 2017
Output:
44

Input: [50000, 44444, 1500] and August 1st, 2018
Output:
<s>50000</s>, <s>&nbsp;44444&nbsp;</s>, 1500

Input: 50, 38, 23 and September 8th, 2001
Output:
<s>50</s>, <s>38</s>, 23









share|improve this question















Introduction



On March 24th, 2015 @isaacg golfed his Pyth answer from 44 to 42 bytes. Since a crossed out 44 (44) looks a lot like a regular 44, @Optimizer made the following comment:




striked out 44 is still normal 44 :(




After that, on October 21st, 2015, @Doorknob♦ golfed his Ruby answer from 44 to 40 (and later 38) bytes and added the following part to his answer, with a link to that original comment of @Optimizer:




crossed out 44 is still regular 44 ;(




This was the start of an answer-chaining meme, where every crossed out 44 (and in some occasions 4 or 444) linked back to the previous one.



Then on April 8th, 2017 (I'm not sure if this was the first answer to do so, but it's the earliest one I could find), @JonathanAllan golfed his Python answer from 44 to 39. He however used <s>&nbsp;44&nbsp;</s> so the 44 would look like this:  44 , and added the following to his answer:




Crossed out &nbsp;44&nbsp; is no longer 44 :)




And that was basically the (beginning of the) end of the meme.



Challenge



As for this challenge: Given a list of positive integers and a date, output the list comma-and-space separated where every number except for the last one is placed between <s>...</s> tags.



In addition, if any of the crossed out numbers is in the sequence [4, 44, 444, 4444, ...] (A00278 on oeis.org):



  • If the date is before April 8th, 2017: Also output the exact (all lowercase and with semicolon emoticon) text crossed out N is still regular N ;( (N being the crossed out number from the sequence) on a second line.

  • If the date is April 8th, 2017 or later: The crossed out number N from the sequence should have the leading and trailing &nbsp; added. No need for any additional lines of output.

Examples:



Input: list = [50, 48, 44, 41], date = January 1st, 2017

Output:



<s>50</s>, <s>48</s>, <s>44</s>, 41
crossed out 44 is still regular 44 ;(


Input: list = [500, 475, 444, 301, 248], date = June 2nd, 2018

Output:



<s>500</s>, <s>475</s>, <s>&nbsp;444&nbsp;</s>, <s>301</s>, 248


Challenge rules:



  • You can assume the input-list is a sorted list from largest to smallest, only containing positive integers. In reality a byte-count can also go up due to bug-fixes, but for the sake of this challenge we pretend it only goes down.

  • You can assume only a single number from the sequence [4, 44, 444, 4444, ...] is present in the input-list (if any).

  • The output format is either printed to STDOUT, or returned as a string (or character array/list/2D-array if that's preferable). A trailing newline is of course optional.

  • The output format is strict. <s>...</s> is mandatory; &nbsp;...&nbsp; is mandatory; ", " (comma and space) is mandatory; and ncrossed out ... is still regular ... ;( exactly is mandatory (on a separated line).

  • You may take the input-date as date-objects; timestamps; loose integers for year, month, and day; a single number in the format yyyyMMdd; integer days since December 31st, 1899 (which would be 42832 for April 8th, 2017); or any other reasonable input-format. The date if-statement isn't the major part of this challenge.

  • The input integer-list can also be a list of strings if you want.

  • You don't have to add the <sup>...</sup> tags to the crossed out ... is still regular ... ;( line as is usually done with the actual meme answers.

  • You can assume the input-list will never contain byte-counts outside the [1, 50000] range (so you'll only have these five 4, 44, 444, 4444, 44444 to worry about).

General rules:



  • This is code-golf, so shortest answer in bytes wins.

    Don't let code-golf languages discourage you from posting answers with non-codegolfing languages. Try to come up with an as short as possible answer for 'any' programming language.


  • Standard rules apply for your answer, so you are allowed to use STDIN/STDOUT, functions/method with the proper parameters and return-type, full programs. Your call.


  • Default Loopholes are forbidden.

  • If possible, please add a link with a test for your code.

  • Also, adding an explanation for your answer is highly recommended.

Test cases:



Input: [50, 48, 44, 41] and January 1st, 2017 
Output:
<s>50</s>, <s>48</s>, <s>44</s>, 41
crossed out 44 is still regular 44 ;(

Input: [500, 475, 444, 301, 248] and June 2nd, 2018
Output:
<s>500</s>, <s>475</s>, <s>&nbsp;444&nbsp;</s>, <s>301</s>, 248

Input: [8, 6, 4] and December 5th, 2017
Output:
<s>8</s>, <s>6</s>, 4

Input: [8, 6, 4, 3, 2] and September 15th, 2015
Output:
<s>8</s>, <s>6</s>, <s>4</s>, <s>3</s>, 2
crossed out 4 is still regular 4 ;(

Input: [119, 99, 84, 82, 74, 60, 51, 44, 36, 34] and February 29th, 2016
Output:
<s>119</s>, <s>99</s>, <s>84</s>, <s>82</s>, <s>74</s>, <s>60</s>, <s>51</s>, <s>44</s>, <s>36</s>, 34
crossed out 44 is still regular 44 ;(

Input: [404, 123, 44] and March 4th, 2016
Output:
<s>404</s>, <s>123</s>, 44

Input: [4, 3] and April 8th, 2017
Output:
<s>&nbsp;4&nbsp;</s>, 3

Input: [44] and October 22nd, 2017
Output:
44

Input: [50000, 44444, 1500] and August 1st, 2018
Output:
<s>50000</s>, <s>&nbsp;44444&nbsp;</s>, 1500

Input: 50, 38, 23 and September 8th, 2001
Output:
<s>50</s>, <s>38</s>, 23






code-golf string number date






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Aug 10 at 6:47

























asked Aug 8 at 8:41









Kevin Cruijssen

30.8k553167




30.8k553167











  • Your last test case is missing its date?
    – Neil
    Aug 8 at 8:47










  • @Neil Ah oops.. Fixed. Date doesn't really matter for that one, but added one regardless. Thanks for noticing.
    – Kevin Cruijssen
    Aug 8 at 8:49






  • 1




    I can confirm that I had not noticed anyone use the non-breaking space for this specific purpose and that was why I wrote the "no longer" text.
    – Jonathan Allan
    Aug 8 at 9:16










  • (I can also confirm that I had used it prior to using it with 44 - I believe that is when I first used them)
    – Jonathan Allan
    Aug 8 at 9:35










  • As we can take input as days since 1889-12-31, can we also take days since 2017-04-08?
    – TFeld
    Aug 8 at 11:49
















  • Your last test case is missing its date?
    – Neil
    Aug 8 at 8:47










  • @Neil Ah oops.. Fixed. Date doesn't really matter for that one, but added one regardless. Thanks for noticing.
    – Kevin Cruijssen
    Aug 8 at 8:49






  • 1




    I can confirm that I had not noticed anyone use the non-breaking space for this specific purpose and that was why I wrote the "no longer" text.
    – Jonathan Allan
    Aug 8 at 9:16










  • (I can also confirm that I had used it prior to using it with 44 - I believe that is when I first used them)
    – Jonathan Allan
    Aug 8 at 9:35










  • As we can take input as days since 1889-12-31, can we also take days since 2017-04-08?
    – TFeld
    Aug 8 at 11:49















Your last test case is missing its date?
– Neil
Aug 8 at 8:47




Your last test case is missing its date?
– Neil
Aug 8 at 8:47












@Neil Ah oops.. Fixed. Date doesn't really matter for that one, but added one regardless. Thanks for noticing.
– Kevin Cruijssen
Aug 8 at 8:49




@Neil Ah oops.. Fixed. Date doesn't really matter for that one, but added one regardless. Thanks for noticing.
– Kevin Cruijssen
Aug 8 at 8:49




1




1




I can confirm that I had not noticed anyone use the non-breaking space for this specific purpose and that was why I wrote the "no longer" text.
– Jonathan Allan
Aug 8 at 9:16




I can confirm that I had not noticed anyone use the non-breaking space for this specific purpose and that was why I wrote the "no longer" text.
– Jonathan Allan
Aug 8 at 9:16












(I can also confirm that I had used it prior to using it with 44 - I believe that is when I first used them)
– Jonathan Allan
Aug 8 at 9:35




(I can also confirm that I had used it prior to using it with 44 - I believe that is when I first used them)
– Jonathan Allan
Aug 8 at 9:35












As we can take input as days since 1889-12-31, can we also take days since 2017-04-08?
– TFeld
Aug 8 at 11:49




As we can take input as days since 1889-12-31, can we also take days since 2017-04-08?
– TFeld
Aug 8 at 11:49










8 Answers
8






active

oldest

votes

















up vote
2
down vote



accepted











Jelly,  444 , 94, 93 bytes



Ñȧ$“&nbsp;”,¤j$€io.ɗ¦@Ṗj@€“<s>“</s>”oj⁾, 
⁴>⁽A€
“¢⁻$gẆẠ⁷Ṭ]ḳṁṛż?=çỊI×V»Ỵjṭ⁷ẋǬȧẠƲ
ṖḟÐḟ”4Ḣµñ³,Ç


A full program. The inputs are a list of strings and a date taken as integer days since January the first 1970 (making 17264 April the eighth 2017)



Try it online!



How?



Ñȧ$“&nbsp;”,¤j$€io.ɗ¦@Ṗj@€“<s>“</s>”oj⁾, - Link 1: L = list of characters ("4...4") OR integer (0),
- R = list of lists of characters (the strings provided to the program)
$ - last 2 links as a monad:
Ñ - call next Link (2) as a monad
- ...gets: is date input to program greater than 2017-04-07?
ȧ - AND (if so gets the value of L, else 0), say X
¦@ - sparse application (with swa@pped @rguments)...
Ṗ - ...with right argument = popped R (without it's rightmost entry)
ɗ - ...to: last 3 links as a dyad
i - first index of X in popped R (0 if no found, so 0->0)
. - literal 0.5
o - OR (change any 0 to 0.5)
- ...i.e. index of "4...4" if L was one or 0.5, an invalid index
$€ - ...do: for €ach... last 2 links as a monad:
¤ - nilad followed by link(s) as a nilad:
“&nbsp;” - literal list of characters = "&nbsp;"
, - pair (with itself) = ["&nbsp;", "&nbsp;"]
j - join (with the item) e.g.: "&nbsp;444&nbsp;" or ["&nbsp;", 0, "&nbsp;"]
“<s>“</s>” - literal list of lists of characters = ["<s>", "</s>"]
j@€ - for €ach... join (with swa@pped @rguments)
o - OR with R (vectorises, so adds the popped entry back onto the right-side)
⁾, - literal list of characters = ", "
j - join

⁴>⁽A€ - Link 2: greater than 2017-04-07?
⁴ - program's 4th argument (2nd input)
⁽A€ - literal 17263 (days(2017-04-07 - 1970-01-01))
> - greater than?

“¢⁻$gẆẠ⁷Ṭ]ḳṁṛż?=çỊI×V»Ỵjṭ⁷ẋǬȧẠƲ - Link 3: L = list of characters ("4...4") OR integer (0)
“¢⁻$gẆẠ⁷Ṭ]ḳṁṛż?=çỊI×V» - compressed list of characters = "crossed out n is still regular n ;("
á»´ - split at newlines = ["crossed out ", " is still regular ", " ;("]
j - join with L
⁷ - literal newline character
á¹­ - tack (add to the front)
Ʋ - last 4 links as a monad:
Ç - call last Link (2) as a monad
¬ - NOT
Ạ - All (1 if L is "4...4", 0 if L is 0)
ȧ - AND
ẋ - repeat (i.e. get the list of characters to print or an empty list)

ṖḟÐḟ”4Ḣµñ³,Ç - Main Link: list of strings, integer (days since 1970-01-01)
Ṗ - pop (list of strings without it's rightmost entry)
Ðḟ - filter discard if:
ḟ - filter discard any which are in...
”4 - ...literal character '4'
Ḣ - head (yields 0 if list is now empty)
µ - new monadic chain, call that X
³ - program's 3rd argument (1st input) - call that Y)
ñ - call next Link (1) as a dyad (i.e. f1(X, Y))
Ç - call last Link (3) as a monad (ie. f3(X))
, - pair
- implicit (smashing) print





share|improve this answer


















  • 1




    You forgot to remove the input from another challenge in your TIO. ;) Nice answer regardless. Would you mind adding an explanation? And rofl at that 444-byte count. I don't believe it one bit that you started with that, unless you added comments. ;p
    – Kevin Cruijssen
    Aug 12 at 9:18










  • Opps, thanks. I'll add an explanation shortly.
    – Jonathan Allan
    Aug 12 at 10:16






  • 1




    444 version no comments, numbers rather than compressed strings
    – Jonathan Allan
    Aug 12 at 10:17










  • ...ah the 444 version has a bug - its using days since 1969-12-31 not since 1970-01-01 as the golfed version does >_< (naive fix is still 444)
    – Jonathan Allan
    Aug 12 at 12:31


















up vote
3
down vote














Python 2, 208 204  203 201 197 bytes



Takes input as a list of strings, and an int of yyyymmDD





def f(l,d):
A=a=d>20170407;r=
for n in l[:-1]:x=set(n)=='4';S='&nbsp;'*x*a;r+=['<s>'+S+n+S+'</s>'];A=x*n or A
print', '.join(r+l[-1:])+'ncrossed out %s is still regular %s ;('%(A,A)*(a*A<A)


Try it online!






share|improve this answer





























    up vote
    3
    down vote













    Excel VBA, 217 bytes





    VBE immediate window function that takes input array from range [A:A], and date from range [B1] and outputs to the console.



    c=[Count(A:A)]:d=[B1]>42832:For i=1To c-1:n=Cells(i,1):l=InStr(44444,n):s=IIf(d*l,"&nbsp;",""):v=IIf((d=0)*l,n,v):?"<s>"s;""&n;s"</s>, ";:Next:?""&Cells(i,1):?IIf(v,"crossed out "&v &" is still regular "&v &" ;(","");


    Ungolfed and Commented



    c=[Count(A:A)] '' Get numer of elements
    d=[B1]>42832 '' Check if date is after 7 Apr 2017,
    For i=1To c-1 '' Iterate over index
    n=Cells(i,1) '' Get array val at index
    l=InStr(44444,n) '' Check if val is all 4s
    s=IIf(d*l,"&nbsp;","") '' If after 7 Aug 2017, and All 4s, let `s` be "&nbsp;"
    v=IIf((d=0)*l,n,v) '' If all 4s, and not after date, let v hold n, else hold v
    ?"<s>"s;""&n;s"</s>, "; '' Print striked vales, with "&nbsp;", if applicable
    Next '' Loop
    ?""&Cells(i,1) '' Print last value in array
    '' (below) Print meme, if needed
    ?IIf(v,"crossed out "&v &" is still regular "&v &" ;(","");


    -2 bytes for changing date format to YYYYMMDD



    -1 byte for comparing to 42832 (int value for 07 Apr 2017), Thanks @Neil



    -2 bytes for removing 1, from the InStr statement, Thanks @SeaDoggie01






    share|improve this answer






















    • I guess For i=1To~-c instead of For i=1To c-1 isn't possible in Excel VBA? If I recall correctly Bitwise not is Not instead of ~, or are both possible? (Note that I know next to nothing of Excel VBA, so I'm probably saying something stupid here. ;p)
      – Kevin Cruijssen
      Aug 8 at 13:05










    • @KevinCruijssen Yeah, bitwise not is Not , so no ~ :(
      – Taylor Scott
      Aug 8 at 13:07







    • 1




      I think you can save more bytes by changing the date format back to date and comparing against 42832 (the integer value of 2017-04-07).
      – Neil
      Aug 8 at 15:24










    • I think you can save 2 bytes by removing the "1," from the instr (it's optional)
      – seadoggie01
      Sep 11 at 19:25

















    up vote
    2
    down vote














    Retina 0.8.2, 130 bytes



    $
    ;42833
    O`;.5
    b(4+),(?=.*;42833;)
    &$1&,
    &
    &nbsp;
    .12$

    b(4+),.*
    $&¶crossed out $1 is still regular $1 ;(
    (.+?),
    <s>$1</s>,


    Try it online! Link includes test cases. Uses Excel date stamps (days since 1899-12-31 but including 1900-02-49). 141 bytes for a version that takes ISO dates:



    $
    ;2017-04-08
    O`;.10
    b(4+),(?=.*;2017-04-08;)
    &$1&,
    &
    &nbsp;
    .22$

    b(4+),.*
    $&¶crossed out $1 is still regular $1 ;(
    (.+?),
    <s>$1</s>,


    Try it online! Link includes test cases. Explanation:



    $
    ;2017-04-08


    Append the cut-off date to the input.



    O`;.10


    Sort the dates. If the given date is on or after the cut-off date then the first date will be the cut-off date.



    b(4+),(?=.*;2017-04-08;)
    &$1&,
    &
    &nbsp;


    In that case, wrap the 4+ in &nbsp; (using two stages as it saves a byte).



    .22$


    Delete the dates as they have done their job.



    b(4+),.*
    $&¶crossed out $1 is still regular $1 ;(


    If there's an unspaced 4+, then append the meme.



    (.+?),
    <s>$1</s>,


    Strike out all of the obsolete byte counts.






    share|improve this answer






















    • You can save 5 bytes by taking the date-format without -.
      – Kevin Cruijssen
      Aug 8 at 9:11










    • @KevinCruijssen I could save even more bytes by asking for it as an Excel date (days since 1899-12-31). How far can I go with this?
      – Neil
      Aug 8 at 10:13










    • Hmm.. You know what, that's also fine by me. How the if-statement for the date April 8th, 2017 is done I don't really care. It's not the major part of this challenge.
      – Kevin Cruijssen
      Aug 8 at 11:12










    • That would be 42832 for April 8th, 2017 I assume?
      – Kevin Cruijssen
      Aug 8 at 11:18











    • @KevinCruijssen My Excel says that's the 7th.
      – Neil
      Aug 8 at 11:33

















    up vote
    1
    down vote













    Ruby, 208 184 180 bytes



    TIO-test



    Thanks for @KevinCruijssen for saving 2 bytes!



    ->n,d*h,t=n;i=20170408>d;f=?n;h.map==[4];f=o&&i ?f+"crossed out #u is still regular #u ;(":f;o&&!i ?"<s>&nbsp;#u&nbsp;</s>":"<s>#u</s>"*", "+", #t"+f


    It's a lambda function that takes a list of numbers and an integer as a date in the format of YYYYmmdd.






    share|improve this answer






















    • Would it be possible to add a TIO-link with test code? And switching formats so it's an integer input would indeed save some bytes. :)
      – Kevin Cruijssen
      Aug 9 at 12:21










    • @KevinCruijssen Added link ;)
      – Peter Lenkefi
      Aug 9 at 12:27










    • Thanks! +1 from me. You can save 2 bytes by removing the spaces after the ?. Also, for your TIO, you can split your actual submission code and test code with the header/footer, like this. :)
      – Kevin Cruijssen
      Aug 9 at 12:41

















    up vote
    1
    down vote













    JavaScript, 194 bytes



    (a,d,l=a.pop(),n=a.find(x=>/^4+$/.exec(x)),s=a.map(n=>`<s>$n</s>, `).join``+l)=>d<1491609600?n?s+`
    crossed out $n is still regular $n ;(`:s:s.replace(/>(4+)</g,(_,m)=>`>&nbsp;$m&nbsp;<`)





    f=
    (a,d,l=a.pop(),n=a.find(x=>/^4+$/.exec(x)),s=a.map(n=>`<s>$n</s>, `).join``+l)=>d<1491609600?n?s+`
    crossed out $n is still regular $n ;(`:s:s.replace(/>(4+)</g,(_,m)=>`>&nbsp;$m&nbsp;<`)


    const date = s => Date.parse(s) / 1000
    for(const output of [
    f([50, 48, 44, 41], date('January 1, 2017')),
    f([500, 475, 444, 301, 248], date('June 2, 2018')),
    f([8, 6, 4], date('December 5, 2017')),
    f([8, 6, 4, 3, 2], date('September 15, 2015')),
    f([119, 99, 84, 82, 74, 60, 51, 44, 36, 34], date('February 29, 2016')),
    f([404, 123, 44], date('March 4, 2016')),
    f([4, 3], date('April 8, 2017')),
    f([44], date('October 22, 2017')),
    f([50000, 44444, 1500], date('August 1, 2018')),
    f([50, 38, 23], date('September 8, 2001')),
    ]) console.log(output)








    share|improve this answer



























      up vote
      1
      down vote














      Haskell, 227 bytes





      i=1>0;i('4':s)=i s;i(_:_)=0>1
      f l d=m l++c where a=head$filter i l;t d|d<42832=("","ncrossed out "++a++" is still regular "++a++" ;(")|1>0=("&nbsp;","");(b,c)=t d;w n|i n=b++n++b|1>0=n;m[n]=n;m(x:s)="<s>"++w x++"</s>, "++m s


      Try it online!
      Run f with list l and date d. 42832 is the changing date.






      share|improve this answer






















      • Would it be possible to add a TIO-link with test code?
        – Kevin Cruijssen
        Aug 9 at 12:21










      • @KevinCruijssen in Russia it's banned
        – Ð•вгений Новиков
        Aug 9 at 15:38










      • Oh, didn't knew that. Well, I don't know Haskell too well, otherwise I would have tested it myself a bit. But the code itself seems logical, so +1 from me nonetheless.
        – Kevin Cruijssen
        Aug 9 at 16:39










      • @KevinCruijssen you can copy code to TIO, make link and add it to post
        – Ð•вгений Новиков
        Aug 9 at 20:12










      • @KevinCruijssen TIO is banned by mistake, but I'm too lazy to use proxy/contact ISP about it
        – Ð•вгений Новиков
        Aug 9 at 20:18

















      up vote
      1
      down vote














      JavaScript (Node.js), 173 bytes





      a=>d=>a.map(x=>--i<1?x:`<s>$(b=/^4+$/.exec(x)?(c=x,d)<14915808e5?n=:"&nbsp;":"")+x+b</s>`,n="",c=0,i=a.length).join`, `+(n&&`
      crossed out $c is still regular $c ;(`)


      Try it online!



      Using curry syntax f(array)(js_timestamp)






      share|improve this answer




















        Your Answer




        StackExchange.ifUsing("editor", function ()
        return StackExchange.using("mathjaxEditing", function ()
        StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
        StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
        );
        );
        , "mathjax-editing");

        StackExchange.ifUsing("editor", function ()
        StackExchange.using("externalEditor", function ()
        StackExchange.using("snippets", function ()
        StackExchange.snippets.init();
        );
        );
        , "code-snippets");

        StackExchange.ready(function()
        var channelOptions =
        tags: "".split(" "),
        id: "200"
        ;
        initTagRenderer("".split(" "), "".split(" "), channelOptions);

        StackExchange.using("externalEditor", function()
        // Have to fire editor after snippets, if snippets enabled
        if (StackExchange.settings.snippets.snippetsEnabled)
        StackExchange.using("snippets", function()
        createEditor();
        );

        else
        createEditor();

        );

        function createEditor()
        StackExchange.prepareEditor(
        heartbeatType: 'answer',
        convertImagesToLinks: false,
        noModals: false,
        showLowRepImageUploadWarning: true,
        reputationToPostImages: null,
        bindNavPrevention: true,
        postfix: "",
        onDemand: true,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        );



        );













         

        draft saved


        draft discarded


















        StackExchange.ready(
        function ()
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f170188%2fcrossed-out-44-is-still-regular-44%23new-answer', 'question_page');

        );

        Post as a guest






























        8 Answers
        8






        active

        oldest

        votes








        8 Answers
        8






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes








        up vote
        2
        down vote



        accepted











        Jelly,  444 , 94, 93 bytes



        Ñȧ$“&nbsp;”,¤j$€io.ɗ¦@Ṗj@€“<s>“</s>”oj⁾, 
        ⁴>⁽A€
        “¢⁻$gẆẠ⁷Ṭ]ḳṁṛż?=çỊI×V»Ỵjṭ⁷ẋǬȧẠƲ
        ṖḟÐḟ”4Ḣµñ³,Ç


        A full program. The inputs are a list of strings and a date taken as integer days since January the first 1970 (making 17264 April the eighth 2017)



        Try it online!



        How?



        Ñȧ$“&nbsp;”,¤j$€io.ɗ¦@Ṗj@€“<s>“</s>”oj⁾, - Link 1: L = list of characters ("4...4") OR integer (0),
        - R = list of lists of characters (the strings provided to the program)
        $ - last 2 links as a monad:
        Ñ - call next Link (2) as a monad
        - ...gets: is date input to program greater than 2017-04-07?
        ȧ - AND (if so gets the value of L, else 0), say X
        ¦@ - sparse application (with swa@pped @rguments)...
        Ṗ - ...with right argument = popped R (without it's rightmost entry)
        ɗ - ...to: last 3 links as a dyad
        i - first index of X in popped R (0 if no found, so 0->0)
        . - literal 0.5
        o - OR (change any 0 to 0.5)
        - ...i.e. index of "4...4" if L was one or 0.5, an invalid index
        $€ - ...do: for €ach... last 2 links as a monad:
        ¤ - nilad followed by link(s) as a nilad:
        “&nbsp;” - literal list of characters = "&nbsp;"
        , - pair (with itself) = ["&nbsp;", "&nbsp;"]
        j - join (with the item) e.g.: "&nbsp;444&nbsp;" or ["&nbsp;", 0, "&nbsp;"]
        “<s>“</s>” - literal list of lists of characters = ["<s>", "</s>"]
        j@€ - for €ach... join (with swa@pped @rguments)
        o - OR with R (vectorises, so adds the popped entry back onto the right-side)
        ⁾, - literal list of characters = ", "
        j - join

        ⁴>⁽A€ - Link 2: greater than 2017-04-07?
        ⁴ - program's 4th argument (2nd input)
        ⁽A€ - literal 17263 (days(2017-04-07 - 1970-01-01))
        > - greater than?

        “¢⁻$gẆẠ⁷Ṭ]ḳṁṛż?=çỊI×V»Ỵjṭ⁷ẋǬȧẠƲ - Link 3: L = list of characters ("4...4") OR integer (0)
        “¢⁻$gẆẠ⁷Ṭ]ḳṁṛż?=çỊI×V» - compressed list of characters = "crossed out n is still regular n ;("
        á»´ - split at newlines = ["crossed out ", " is still regular ", " ;("]
        j - join with L
        ⁷ - literal newline character
        á¹­ - tack (add to the front)
        Ʋ - last 4 links as a monad:
        Ç - call last Link (2) as a monad
        ¬ - NOT
        Ạ - All (1 if L is "4...4", 0 if L is 0)
        ȧ - AND
        ẋ - repeat (i.e. get the list of characters to print or an empty list)

        ṖḟÐḟ”4Ḣµñ³,Ç - Main Link: list of strings, integer (days since 1970-01-01)
        Ṗ - pop (list of strings without it's rightmost entry)
        Ðḟ - filter discard if:
        ḟ - filter discard any which are in...
        ”4 - ...literal character '4'
        Ḣ - head (yields 0 if list is now empty)
        µ - new monadic chain, call that X
        ³ - program's 3rd argument (1st input) - call that Y)
        ñ - call next Link (1) as a dyad (i.e. f1(X, Y))
        Ç - call last Link (3) as a monad (ie. f3(X))
        , - pair
        - implicit (smashing) print





        share|improve this answer


















        • 1




          You forgot to remove the input from another challenge in your TIO. ;) Nice answer regardless. Would you mind adding an explanation? And rofl at that 444-byte count. I don't believe it one bit that you started with that, unless you added comments. ;p
          – Kevin Cruijssen
          Aug 12 at 9:18










        • Opps, thanks. I'll add an explanation shortly.
          – Jonathan Allan
          Aug 12 at 10:16






        • 1




          444 version no comments, numbers rather than compressed strings
          – Jonathan Allan
          Aug 12 at 10:17










        • ...ah the 444 version has a bug - its using days since 1969-12-31 not since 1970-01-01 as the golfed version does >_< (naive fix is still 444)
          – Jonathan Allan
          Aug 12 at 12:31















        up vote
        2
        down vote



        accepted











        Jelly,  444 , 94, 93 bytes



        Ñȧ$“&nbsp;”,¤j$€io.ɗ¦@Ṗj@€“<s>“</s>”oj⁾, 
        ⁴>⁽A€
        “¢⁻$gẆẠ⁷Ṭ]ḳṁṛż?=çỊI×V»Ỵjṭ⁷ẋǬȧẠƲ
        ṖḟÐḟ”4Ḣµñ³,Ç


        A full program. The inputs are a list of strings and a date taken as integer days since January the first 1970 (making 17264 April the eighth 2017)



        Try it online!



        How?



        Ñȧ$“&nbsp;”,¤j$€io.ɗ¦@Ṗj@€“<s>“</s>”oj⁾, - Link 1: L = list of characters ("4...4") OR integer (0),
        - R = list of lists of characters (the strings provided to the program)
        $ - last 2 links as a monad:
        Ñ - call next Link (2) as a monad
        - ...gets: is date input to program greater than 2017-04-07?
        ȧ - AND (if so gets the value of L, else 0), say X
        ¦@ - sparse application (with swa@pped @rguments)...
        Ṗ - ...with right argument = popped R (without it's rightmost entry)
        ɗ - ...to: last 3 links as a dyad
        i - first index of X in popped R (0 if no found, so 0->0)
        . - literal 0.5
        o - OR (change any 0 to 0.5)
        - ...i.e. index of "4...4" if L was one or 0.5, an invalid index
        $€ - ...do: for €ach... last 2 links as a monad:
        ¤ - nilad followed by link(s) as a nilad:
        “&nbsp;” - literal list of characters = "&nbsp;"
        , - pair (with itself) = ["&nbsp;", "&nbsp;"]
        j - join (with the item) e.g.: "&nbsp;444&nbsp;" or ["&nbsp;", 0, "&nbsp;"]
        “<s>“</s>” - literal list of lists of characters = ["<s>", "</s>"]
        j@€ - for €ach... join (with swa@pped @rguments)
        o - OR with R (vectorises, so adds the popped entry back onto the right-side)
        ⁾, - literal list of characters = ", "
        j - join

        ⁴>⁽A€ - Link 2: greater than 2017-04-07?
        ⁴ - program's 4th argument (2nd input)
        ⁽A€ - literal 17263 (days(2017-04-07 - 1970-01-01))
        > - greater than?

        “¢⁻$gẆẠ⁷Ṭ]ḳṁṛż?=çỊI×V»Ỵjṭ⁷ẋǬȧẠƲ - Link 3: L = list of characters ("4...4") OR integer (0)
        “¢⁻$gẆẠ⁷Ṭ]ḳṁṛż?=çỊI×V» - compressed list of characters = "crossed out n is still regular n ;("
        á»´ - split at newlines = ["crossed out ", " is still regular ", " ;("]
        j - join with L
        ⁷ - literal newline character
        á¹­ - tack (add to the front)
        Ʋ - last 4 links as a monad:
        Ç - call last Link (2) as a monad
        ¬ - NOT
        Ạ - All (1 if L is "4...4", 0 if L is 0)
        ȧ - AND
        ẋ - repeat (i.e. get the list of characters to print or an empty list)

        ṖḟÐḟ”4Ḣµñ³,Ç - Main Link: list of strings, integer (days since 1970-01-01)
        Ṗ - pop (list of strings without it's rightmost entry)
        Ðḟ - filter discard if:
        ḟ - filter discard any which are in...
        ”4 - ...literal character '4'
        Ḣ - head (yields 0 if list is now empty)
        µ - new monadic chain, call that X
        ³ - program's 3rd argument (1st input) - call that Y)
        ñ - call next Link (1) as a dyad (i.e. f1(X, Y))
        Ç - call last Link (3) as a monad (ie. f3(X))
        , - pair
        - implicit (smashing) print





        share|improve this answer


















        • 1




          You forgot to remove the input from another challenge in your TIO. ;) Nice answer regardless. Would you mind adding an explanation? And rofl at that 444-byte count. I don't believe it one bit that you started with that, unless you added comments. ;p
          – Kevin Cruijssen
          Aug 12 at 9:18










        • Opps, thanks. I'll add an explanation shortly.
          – Jonathan Allan
          Aug 12 at 10:16






        • 1




          444 version no comments, numbers rather than compressed strings
          – Jonathan Allan
          Aug 12 at 10:17










        • ...ah the 444 version has a bug - its using days since 1969-12-31 not since 1970-01-01 as the golfed version does >_< (naive fix is still 444)
          – Jonathan Allan
          Aug 12 at 12:31













        up vote
        2
        down vote



        accepted







        up vote
        2
        down vote



        accepted







        Jelly,  444 , 94, 93 bytes



        Ñȧ$“&nbsp;”,¤j$€io.ɗ¦@Ṗj@€“<s>“</s>”oj⁾, 
        ⁴>⁽A€
        “¢⁻$gẆẠ⁷Ṭ]ḳṁṛż?=çỊI×V»Ỵjṭ⁷ẋǬȧẠƲ
        ṖḟÐḟ”4Ḣµñ³,Ç


        A full program. The inputs are a list of strings and a date taken as integer days since January the first 1970 (making 17264 April the eighth 2017)



        Try it online!



        How?



        Ñȧ$“&nbsp;”,¤j$€io.ɗ¦@Ṗj@€“<s>“</s>”oj⁾, - Link 1: L = list of characters ("4...4") OR integer (0),
        - R = list of lists of characters (the strings provided to the program)
        $ - last 2 links as a monad:
        Ñ - call next Link (2) as a monad
        - ...gets: is date input to program greater than 2017-04-07?
        ȧ - AND (if so gets the value of L, else 0), say X
        ¦@ - sparse application (with swa@pped @rguments)...
        Ṗ - ...with right argument = popped R (without it's rightmost entry)
        ɗ - ...to: last 3 links as a dyad
        i - first index of X in popped R (0 if no found, so 0->0)
        . - literal 0.5
        o - OR (change any 0 to 0.5)
        - ...i.e. index of "4...4" if L was one or 0.5, an invalid index
        $€ - ...do: for €ach... last 2 links as a monad:
        ¤ - nilad followed by link(s) as a nilad:
        “&nbsp;” - literal list of characters = "&nbsp;"
        , - pair (with itself) = ["&nbsp;", "&nbsp;"]
        j - join (with the item) e.g.: "&nbsp;444&nbsp;" or ["&nbsp;", 0, "&nbsp;"]
        “<s>“</s>” - literal list of lists of characters = ["<s>", "</s>"]
        j@€ - for €ach... join (with swa@pped @rguments)
        o - OR with R (vectorises, so adds the popped entry back onto the right-side)
        ⁾, - literal list of characters = ", "
        j - join

        ⁴>⁽A€ - Link 2: greater than 2017-04-07?
        ⁴ - program's 4th argument (2nd input)
        ⁽A€ - literal 17263 (days(2017-04-07 - 1970-01-01))
        > - greater than?

        “¢⁻$gẆẠ⁷Ṭ]ḳṁṛż?=çỊI×V»Ỵjṭ⁷ẋǬȧẠƲ - Link 3: L = list of characters ("4...4") OR integer (0)
        “¢⁻$gẆẠ⁷Ṭ]ḳṁṛż?=çỊI×V» - compressed list of characters = "crossed out n is still regular n ;("
        á»´ - split at newlines = ["crossed out ", " is still regular ", " ;("]
        j - join with L
        ⁷ - literal newline character
        á¹­ - tack (add to the front)
        Ʋ - last 4 links as a monad:
        Ç - call last Link (2) as a monad
        ¬ - NOT
        Ạ - All (1 if L is "4...4", 0 if L is 0)
        ȧ - AND
        ẋ - repeat (i.e. get the list of characters to print or an empty list)

        ṖḟÐḟ”4Ḣµñ³,Ç - Main Link: list of strings, integer (days since 1970-01-01)
        Ṗ - pop (list of strings without it's rightmost entry)
        Ðḟ - filter discard if:
        ḟ - filter discard any which are in...
        ”4 - ...literal character '4'
        Ḣ - head (yields 0 if list is now empty)
        µ - new monadic chain, call that X
        ³ - program's 3rd argument (1st input) - call that Y)
        ñ - call next Link (1) as a dyad (i.e. f1(X, Y))
        Ç - call last Link (3) as a monad (ie. f3(X))
        , - pair
        - implicit (smashing) print





        share|improve this answer















        Jelly,  444 , 94, 93 bytes



        Ñȧ$“&nbsp;”,¤j$€io.ɗ¦@Ṗj@€“<s>“</s>”oj⁾, 
        ⁴>⁽A€
        “¢⁻$gẆẠ⁷Ṭ]ḳṁṛż?=çỊI×V»Ỵjṭ⁷ẋǬȧẠƲ
        ṖḟÐḟ”4Ḣµñ³,Ç


        A full program. The inputs are a list of strings and a date taken as integer days since January the first 1970 (making 17264 April the eighth 2017)



        Try it online!



        How?



        Ñȧ$“&nbsp;”,¤j$€io.ɗ¦@Ṗj@€“<s>“</s>”oj⁾, - Link 1: L = list of characters ("4...4") OR integer (0),
        - R = list of lists of characters (the strings provided to the program)
        $ - last 2 links as a monad:
        Ñ - call next Link (2) as a monad
        - ...gets: is date input to program greater than 2017-04-07?
        ȧ - AND (if so gets the value of L, else 0), say X
        ¦@ - sparse application (with swa@pped @rguments)...
        Ṗ - ...with right argument = popped R (without it's rightmost entry)
        ɗ - ...to: last 3 links as a dyad
        i - first index of X in popped R (0 if no found, so 0->0)
        . - literal 0.5
        o - OR (change any 0 to 0.5)
        - ...i.e. index of "4...4" if L was one or 0.5, an invalid index
        $€ - ...do: for €ach... last 2 links as a monad:
        ¤ - nilad followed by link(s) as a nilad:
        “&nbsp;” - literal list of characters = "&nbsp;"
        , - pair (with itself) = ["&nbsp;", "&nbsp;"]
        j - join (with the item) e.g.: "&nbsp;444&nbsp;" or ["&nbsp;", 0, "&nbsp;"]
        “<s>“</s>” - literal list of lists of characters = ["<s>", "</s>"]
        j@€ - for €ach... join (with swa@pped @rguments)
        o - OR with R (vectorises, so adds the popped entry back onto the right-side)
        ⁾, - literal list of characters = ", "
        j - join

        ⁴>⁽A€ - Link 2: greater than 2017-04-07?
        ⁴ - program's 4th argument (2nd input)
        ⁽A€ - literal 17263 (days(2017-04-07 - 1970-01-01))
        > - greater than?

        “¢⁻$gẆẠ⁷Ṭ]ḳṁṛż?=çỊI×V»Ỵjṭ⁷ẋǬȧẠƲ - Link 3: L = list of characters ("4...4") OR integer (0)
        “¢⁻$gẆẠ⁷Ṭ]ḳṁṛż?=çỊI×V» - compressed list of characters = "crossed out n is still regular n ;("
        á»´ - split at newlines = ["crossed out ", " is still regular ", " ;("]
        j - join with L
        ⁷ - literal newline character
        á¹­ - tack (add to the front)
        Ʋ - last 4 links as a monad:
        Ç - call last Link (2) as a monad
        ¬ - NOT
        Ạ - All (1 if L is "4...4", 0 if L is 0)
        ȧ - AND
        ẋ - repeat (i.e. get the list of characters to print or an empty list)

        ṖḟÐḟ”4Ḣµñ³,Ç - Main Link: list of strings, integer (days since 1970-01-01)
        Ṗ - pop (list of strings without it's rightmost entry)
        Ðḟ - filter discard if:
        ḟ - filter discard any which are in...
        ”4 - ...literal character '4'
        Ḣ - head (yields 0 if list is now empty)
        µ - new monadic chain, call that X
        ³ - program's 3rd argument (1st input) - call that Y)
        ñ - call next Link (1) as a dyad (i.e. f1(X, Y))
        Ç - call last Link (3) as a monad (ie. f3(X))
        , - pair
        - implicit (smashing) print






        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Aug 12 at 12:26

























        answered Aug 11 at 22:16









        Jonathan Allan

        48.6k534160




        48.6k534160







        • 1




          You forgot to remove the input from another challenge in your TIO. ;) Nice answer regardless. Would you mind adding an explanation? And rofl at that 444-byte count. I don't believe it one bit that you started with that, unless you added comments. ;p
          – Kevin Cruijssen
          Aug 12 at 9:18










        • Opps, thanks. I'll add an explanation shortly.
          – Jonathan Allan
          Aug 12 at 10:16






        • 1




          444 version no comments, numbers rather than compressed strings
          – Jonathan Allan
          Aug 12 at 10:17










        • ...ah the 444 version has a bug - its using days since 1969-12-31 not since 1970-01-01 as the golfed version does >_< (naive fix is still 444)
          – Jonathan Allan
          Aug 12 at 12:31













        • 1




          You forgot to remove the input from another challenge in your TIO. ;) Nice answer regardless. Would you mind adding an explanation? And rofl at that 444-byte count. I don't believe it one bit that you started with that, unless you added comments. ;p
          – Kevin Cruijssen
          Aug 12 at 9:18










        • Opps, thanks. I'll add an explanation shortly.
          – Jonathan Allan
          Aug 12 at 10:16






        • 1




          444 version no comments, numbers rather than compressed strings
          – Jonathan Allan
          Aug 12 at 10:17










        • ...ah the 444 version has a bug - its using days since 1969-12-31 not since 1970-01-01 as the golfed version does >_< (naive fix is still 444)
          – Jonathan Allan
          Aug 12 at 12:31








        1




        1




        You forgot to remove the input from another challenge in your TIO. ;) Nice answer regardless. Would you mind adding an explanation? And rofl at that 444-byte count. I don't believe it one bit that you started with that, unless you added comments. ;p
        – Kevin Cruijssen
        Aug 12 at 9:18




        You forgot to remove the input from another challenge in your TIO. ;) Nice answer regardless. Would you mind adding an explanation? And rofl at that 444-byte count. I don't believe it one bit that you started with that, unless you added comments. ;p
        – Kevin Cruijssen
        Aug 12 at 9:18












        Opps, thanks. I'll add an explanation shortly.
        – Jonathan Allan
        Aug 12 at 10:16




        Opps, thanks. I'll add an explanation shortly.
        – Jonathan Allan
        Aug 12 at 10:16




        1




        1




        444 version no comments, numbers rather than compressed strings
        – Jonathan Allan
        Aug 12 at 10:17




        444 version no comments, numbers rather than compressed strings
        – Jonathan Allan
        Aug 12 at 10:17












        ...ah the 444 version has a bug - its using days since 1969-12-31 not since 1970-01-01 as the golfed version does >_< (naive fix is still 444)
        – Jonathan Allan
        Aug 12 at 12:31





        ...ah the 444 version has a bug - its using days since 1969-12-31 not since 1970-01-01 as the golfed version does >_< (naive fix is still 444)
        – Jonathan Allan
        Aug 12 at 12:31











        up vote
        3
        down vote














        Python 2, 208 204  203 201 197 bytes



        Takes input as a list of strings, and an int of yyyymmDD





        def f(l,d):
        A=a=d>20170407;r=
        for n in l[:-1]:x=set(n)=='4';S='&nbsp;'*x*a;r+=['<s>'+S+n+S+'</s>'];A=x*n or A
        print', '.join(r+l[-1:])+'ncrossed out %s is still regular %s ;('%(A,A)*(a*A<A)


        Try it online!






        share|improve this answer


























          up vote
          3
          down vote














          Python 2, 208 204  203 201 197 bytes



          Takes input as a list of strings, and an int of yyyymmDD





          def f(l,d):
          A=a=d>20170407;r=
          for n in l[:-1]:x=set(n)=='4';S='&nbsp;'*x*a;r+=['<s>'+S+n+S+'</s>'];A=x*n or A
          print', '.join(r+l[-1:])+'ncrossed out %s is still regular %s ;('%(A,A)*(a*A<A)


          Try it online!






          share|improve this answer
























            up vote
            3
            down vote










            up vote
            3
            down vote










            Python 2, 208 204  203 201 197 bytes



            Takes input as a list of strings, and an int of yyyymmDD





            def f(l,d):
            A=a=d>20170407;r=
            for n in l[:-1]:x=set(n)=='4';S='&nbsp;'*x*a;r+=['<s>'+S+n+S+'</s>'];A=x*n or A
            print', '.join(r+l[-1:])+'ncrossed out %s is still regular %s ;('%(A,A)*(a*A<A)


            Try it online!






            share|improve this answer















            Python 2, 208 204  203 201 197 bytes



            Takes input as a list of strings, and an int of yyyymmDD





            def f(l,d):
            A=a=d>20170407;r=
            for n in l[:-1]:x=set(n)=='4';S='&nbsp;'*x*a;r+=['<s>'+S+n+S+'</s>'];A=x*n or A
            print', '.join(r+l[-1:])+'ncrossed out %s is still regular %s ;('%(A,A)*(a*A<A)


            Try it online!







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Aug 8 at 13:06

























            answered Aug 8 at 11:11









            TFeld

            11.9k2833




            11.9k2833




















                up vote
                3
                down vote













                Excel VBA, 217 bytes





                VBE immediate window function that takes input array from range [A:A], and date from range [B1] and outputs to the console.



                c=[Count(A:A)]:d=[B1]>42832:For i=1To c-1:n=Cells(i,1):l=InStr(44444,n):s=IIf(d*l,"&nbsp;",""):v=IIf((d=0)*l,n,v):?"<s>"s;""&n;s"</s>, ";:Next:?""&Cells(i,1):?IIf(v,"crossed out "&v &" is still regular "&v &" ;(","");


                Ungolfed and Commented



                c=[Count(A:A)] '' Get numer of elements
                d=[B1]>42832 '' Check if date is after 7 Apr 2017,
                For i=1To c-1 '' Iterate over index
                n=Cells(i,1) '' Get array val at index
                l=InStr(44444,n) '' Check if val is all 4s
                s=IIf(d*l,"&nbsp;","") '' If after 7 Aug 2017, and All 4s, let `s` be "&nbsp;"
                v=IIf((d=0)*l,n,v) '' If all 4s, and not after date, let v hold n, else hold v
                ?"<s>"s;""&n;s"</s>, "; '' Print striked vales, with "&nbsp;", if applicable
                Next '' Loop
                ?""&Cells(i,1) '' Print last value in array
                '' (below) Print meme, if needed
                ?IIf(v,"crossed out "&v &" is still regular "&v &" ;(","");


                -2 bytes for changing date format to YYYYMMDD



                -1 byte for comparing to 42832 (int value for 07 Apr 2017), Thanks @Neil



                -2 bytes for removing 1, from the InStr statement, Thanks @SeaDoggie01






                share|improve this answer






















                • I guess For i=1To~-c instead of For i=1To c-1 isn't possible in Excel VBA? If I recall correctly Bitwise not is Not instead of ~, or are both possible? (Note that I know next to nothing of Excel VBA, so I'm probably saying something stupid here. ;p)
                  – Kevin Cruijssen
                  Aug 8 at 13:05










                • @KevinCruijssen Yeah, bitwise not is Not , so no ~ :(
                  – Taylor Scott
                  Aug 8 at 13:07







                • 1




                  I think you can save more bytes by changing the date format back to date and comparing against 42832 (the integer value of 2017-04-07).
                  – Neil
                  Aug 8 at 15:24










                • I think you can save 2 bytes by removing the "1," from the instr (it's optional)
                  – seadoggie01
                  Sep 11 at 19:25














                up vote
                3
                down vote













                Excel VBA, 217 bytes





                VBE immediate window function that takes input array from range [A:A], and date from range [B1] and outputs to the console.



                c=[Count(A:A)]:d=[B1]>42832:For i=1To c-1:n=Cells(i,1):l=InStr(44444,n):s=IIf(d*l,"&nbsp;",""):v=IIf((d=0)*l,n,v):?"<s>"s;""&n;s"</s>, ";:Next:?""&Cells(i,1):?IIf(v,"crossed out "&v &" is still regular "&v &" ;(","");


                Ungolfed and Commented



                c=[Count(A:A)] '' Get numer of elements
                d=[B1]>42832 '' Check if date is after 7 Apr 2017,
                For i=1To c-1 '' Iterate over index
                n=Cells(i,1) '' Get array val at index
                l=InStr(44444,n) '' Check if val is all 4s
                s=IIf(d*l,"&nbsp;","") '' If after 7 Aug 2017, and All 4s, let `s` be "&nbsp;"
                v=IIf((d=0)*l,n,v) '' If all 4s, and not after date, let v hold n, else hold v
                ?"<s>"s;""&n;s"</s>, "; '' Print striked vales, with "&nbsp;", if applicable
                Next '' Loop
                ?""&Cells(i,1) '' Print last value in array
                '' (below) Print meme, if needed
                ?IIf(v,"crossed out "&v &" is still regular "&v &" ;(","");


                -2 bytes for changing date format to YYYYMMDD



                -1 byte for comparing to 42832 (int value for 07 Apr 2017), Thanks @Neil



                -2 bytes for removing 1, from the InStr statement, Thanks @SeaDoggie01






                share|improve this answer






















                • I guess For i=1To~-c instead of For i=1To c-1 isn't possible in Excel VBA? If I recall correctly Bitwise not is Not instead of ~, or are both possible? (Note that I know next to nothing of Excel VBA, so I'm probably saying something stupid here. ;p)
                  – Kevin Cruijssen
                  Aug 8 at 13:05










                • @KevinCruijssen Yeah, bitwise not is Not , so no ~ :(
                  – Taylor Scott
                  Aug 8 at 13:07







                • 1




                  I think you can save more bytes by changing the date format back to date and comparing against 42832 (the integer value of 2017-04-07).
                  – Neil
                  Aug 8 at 15:24










                • I think you can save 2 bytes by removing the "1," from the instr (it's optional)
                  – seadoggie01
                  Sep 11 at 19:25












                up vote
                3
                down vote










                up vote
                3
                down vote









                Excel VBA, 217 bytes





                VBE immediate window function that takes input array from range [A:A], and date from range [B1] and outputs to the console.



                c=[Count(A:A)]:d=[B1]>42832:For i=1To c-1:n=Cells(i,1):l=InStr(44444,n):s=IIf(d*l,"&nbsp;",""):v=IIf((d=0)*l,n,v):?"<s>"s;""&n;s"</s>, ";:Next:?""&Cells(i,1):?IIf(v,"crossed out "&v &" is still regular "&v &" ;(","");


                Ungolfed and Commented



                c=[Count(A:A)] '' Get numer of elements
                d=[B1]>42832 '' Check if date is after 7 Apr 2017,
                For i=1To c-1 '' Iterate over index
                n=Cells(i,1) '' Get array val at index
                l=InStr(44444,n) '' Check if val is all 4s
                s=IIf(d*l,"&nbsp;","") '' If after 7 Aug 2017, and All 4s, let `s` be "&nbsp;"
                v=IIf((d=0)*l,n,v) '' If all 4s, and not after date, let v hold n, else hold v
                ?"<s>"s;""&n;s"</s>, "; '' Print striked vales, with "&nbsp;", if applicable
                Next '' Loop
                ?""&Cells(i,1) '' Print last value in array
                '' (below) Print meme, if needed
                ?IIf(v,"crossed out "&v &" is still regular "&v &" ;(","");


                -2 bytes for changing date format to YYYYMMDD



                -1 byte for comparing to 42832 (int value for 07 Apr 2017), Thanks @Neil



                -2 bytes for removing 1, from the InStr statement, Thanks @SeaDoggie01






                share|improve this answer














                Excel VBA, 217 bytes





                VBE immediate window function that takes input array from range [A:A], and date from range [B1] and outputs to the console.



                c=[Count(A:A)]:d=[B1]>42832:For i=1To c-1:n=Cells(i,1):l=InStr(44444,n):s=IIf(d*l,"&nbsp;",""):v=IIf((d=0)*l,n,v):?"<s>"s;""&n;s"</s>, ";:Next:?""&Cells(i,1):?IIf(v,"crossed out "&v &" is still regular "&v &" ;(","");


                Ungolfed and Commented



                c=[Count(A:A)] '' Get numer of elements
                d=[B1]>42832 '' Check if date is after 7 Apr 2017,
                For i=1To c-1 '' Iterate over index
                n=Cells(i,1) '' Get array val at index
                l=InStr(44444,n) '' Check if val is all 4s
                s=IIf(d*l,"&nbsp;","") '' If after 7 Aug 2017, and All 4s, let `s` be "&nbsp;"
                v=IIf((d=0)*l,n,v) '' If all 4s, and not after date, let v hold n, else hold v
                ?"<s>"s;""&n;s"</s>, "; '' Print striked vales, with "&nbsp;", if applicable
                Next '' Loop
                ?""&Cells(i,1) '' Print last value in array
                '' (below) Print meme, if needed
                ?IIf(v,"crossed out "&v &" is still regular "&v &" ;(","");


                -2 bytes for changing date format to YYYYMMDD



                -1 byte for comparing to 42832 (int value for 07 Apr 2017), Thanks @Neil



                -2 bytes for removing 1, from the InStr statement, Thanks @SeaDoggie01







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Sep 12 at 15:12

























                answered Aug 8 at 12:55









                Taylor Scott

                5,97711041




                5,97711041











                • I guess For i=1To~-c instead of For i=1To c-1 isn't possible in Excel VBA? If I recall correctly Bitwise not is Not instead of ~, or are both possible? (Note that I know next to nothing of Excel VBA, so I'm probably saying something stupid here. ;p)
                  – Kevin Cruijssen
                  Aug 8 at 13:05










                • @KevinCruijssen Yeah, bitwise not is Not , so no ~ :(
                  – Taylor Scott
                  Aug 8 at 13:07







                • 1




                  I think you can save more bytes by changing the date format back to date and comparing against 42832 (the integer value of 2017-04-07).
                  – Neil
                  Aug 8 at 15:24










                • I think you can save 2 bytes by removing the "1," from the instr (it's optional)
                  – seadoggie01
                  Sep 11 at 19:25
















                • I guess For i=1To~-c instead of For i=1To c-1 isn't possible in Excel VBA? If I recall correctly Bitwise not is Not instead of ~, or are both possible? (Note that I know next to nothing of Excel VBA, so I'm probably saying something stupid here. ;p)
                  – Kevin Cruijssen
                  Aug 8 at 13:05










                • @KevinCruijssen Yeah, bitwise not is Not , so no ~ :(
                  – Taylor Scott
                  Aug 8 at 13:07







                • 1




                  I think you can save more bytes by changing the date format back to date and comparing against 42832 (the integer value of 2017-04-07).
                  – Neil
                  Aug 8 at 15:24










                • I think you can save 2 bytes by removing the "1," from the instr (it's optional)
                  – seadoggie01
                  Sep 11 at 19:25















                I guess For i=1To~-c instead of For i=1To c-1 isn't possible in Excel VBA? If I recall correctly Bitwise not is Not instead of ~, or are both possible? (Note that I know next to nothing of Excel VBA, so I'm probably saying something stupid here. ;p)
                – Kevin Cruijssen
                Aug 8 at 13:05




                I guess For i=1To~-c instead of For i=1To c-1 isn't possible in Excel VBA? If I recall correctly Bitwise not is Not instead of ~, or are both possible? (Note that I know next to nothing of Excel VBA, so I'm probably saying something stupid here. ;p)
                – Kevin Cruijssen
                Aug 8 at 13:05












                @KevinCruijssen Yeah, bitwise not is Not , so no ~ :(
                – Taylor Scott
                Aug 8 at 13:07





                @KevinCruijssen Yeah, bitwise not is Not , so no ~ :(
                – Taylor Scott
                Aug 8 at 13:07





                1




                1




                I think you can save more bytes by changing the date format back to date and comparing against 42832 (the integer value of 2017-04-07).
                – Neil
                Aug 8 at 15:24




                I think you can save more bytes by changing the date format back to date and comparing against 42832 (the integer value of 2017-04-07).
                – Neil
                Aug 8 at 15:24












                I think you can save 2 bytes by removing the "1," from the instr (it's optional)
                – seadoggie01
                Sep 11 at 19:25




                I think you can save 2 bytes by removing the "1," from the instr (it's optional)
                – seadoggie01
                Sep 11 at 19:25










                up vote
                2
                down vote














                Retina 0.8.2, 130 bytes



                $
                ;42833
                O`;.5
                b(4+),(?=.*;42833;)
                &$1&,
                &
                &nbsp;
                .12$

                b(4+),.*
                $&¶crossed out $1 is still regular $1 ;(
                (.+?),
                <s>$1</s>,


                Try it online! Link includes test cases. Uses Excel date stamps (days since 1899-12-31 but including 1900-02-49). 141 bytes for a version that takes ISO dates:



                $
                ;2017-04-08
                O`;.10
                b(4+),(?=.*;2017-04-08;)
                &$1&,
                &
                &nbsp;
                .22$

                b(4+),.*
                $&¶crossed out $1 is still regular $1 ;(
                (.+?),
                <s>$1</s>,


                Try it online! Link includes test cases. Explanation:



                $
                ;2017-04-08


                Append the cut-off date to the input.



                O`;.10


                Sort the dates. If the given date is on or after the cut-off date then the first date will be the cut-off date.



                b(4+),(?=.*;2017-04-08;)
                &$1&,
                &
                &nbsp;


                In that case, wrap the 4+ in &nbsp; (using two stages as it saves a byte).



                .22$


                Delete the dates as they have done their job.



                b(4+),.*
                $&¶crossed out $1 is still regular $1 ;(


                If there's an unspaced 4+, then append the meme.



                (.+?),
                <s>$1</s>,


                Strike out all of the obsolete byte counts.






                share|improve this answer






















                • You can save 5 bytes by taking the date-format without -.
                  – Kevin Cruijssen
                  Aug 8 at 9:11










                • @KevinCruijssen I could save even more bytes by asking for it as an Excel date (days since 1899-12-31). How far can I go with this?
                  – Neil
                  Aug 8 at 10:13










                • Hmm.. You know what, that's also fine by me. How the if-statement for the date April 8th, 2017 is done I don't really care. It's not the major part of this challenge.
                  – Kevin Cruijssen
                  Aug 8 at 11:12










                • That would be 42832 for April 8th, 2017 I assume?
                  – Kevin Cruijssen
                  Aug 8 at 11:18











                • @KevinCruijssen My Excel says that's the 7th.
                  – Neil
                  Aug 8 at 11:33














                up vote
                2
                down vote














                Retina 0.8.2, 130 bytes



                $
                ;42833
                O`;.5
                b(4+),(?=.*;42833;)
                &$1&,
                &
                &nbsp;
                .12$

                b(4+),.*
                $&¶crossed out $1 is still regular $1 ;(
                (.+?),
                <s>$1</s>,


                Try it online! Link includes test cases. Uses Excel date stamps (days since 1899-12-31 but including 1900-02-49). 141 bytes for a version that takes ISO dates:



                $
                ;2017-04-08
                O`;.10
                b(4+),(?=.*;2017-04-08;)
                &$1&,
                &
                &nbsp;
                .22$

                b(4+),.*
                $&¶crossed out $1 is still regular $1 ;(
                (.+?),
                <s>$1</s>,


                Try it online! Link includes test cases. Explanation:



                $
                ;2017-04-08


                Append the cut-off date to the input.



                O`;.10


                Sort the dates. If the given date is on or after the cut-off date then the first date will be the cut-off date.



                b(4+),(?=.*;2017-04-08;)
                &$1&,
                &
                &nbsp;


                In that case, wrap the 4+ in &nbsp; (using two stages as it saves a byte).



                .22$


                Delete the dates as they have done their job.



                b(4+),.*
                $&¶crossed out $1 is still regular $1 ;(


                If there's an unspaced 4+, then append the meme.



                (.+?),
                <s>$1</s>,


                Strike out all of the obsolete byte counts.






                share|improve this answer






















                • You can save 5 bytes by taking the date-format without -.
                  – Kevin Cruijssen
                  Aug 8 at 9:11










                • @KevinCruijssen I could save even more bytes by asking for it as an Excel date (days since 1899-12-31). How far can I go with this?
                  – Neil
                  Aug 8 at 10:13










                • Hmm.. You know what, that's also fine by me. How the if-statement for the date April 8th, 2017 is done I don't really care. It's not the major part of this challenge.
                  – Kevin Cruijssen
                  Aug 8 at 11:12










                • That would be 42832 for April 8th, 2017 I assume?
                  – Kevin Cruijssen
                  Aug 8 at 11:18











                • @KevinCruijssen My Excel says that's the 7th.
                  – Neil
                  Aug 8 at 11:33












                up vote
                2
                down vote










                up vote
                2
                down vote










                Retina 0.8.2, 130 bytes



                $
                ;42833
                O`;.5
                b(4+),(?=.*;42833;)
                &$1&,
                &
                &nbsp;
                .12$

                b(4+),.*
                $&¶crossed out $1 is still regular $1 ;(
                (.+?),
                <s>$1</s>,


                Try it online! Link includes test cases. Uses Excel date stamps (days since 1899-12-31 but including 1900-02-49). 141 bytes for a version that takes ISO dates:



                $
                ;2017-04-08
                O`;.10
                b(4+),(?=.*;2017-04-08;)
                &$1&,
                &
                &nbsp;
                .22$

                b(4+),.*
                $&¶crossed out $1 is still regular $1 ;(
                (.+?),
                <s>$1</s>,


                Try it online! Link includes test cases. Explanation:



                $
                ;2017-04-08


                Append the cut-off date to the input.



                O`;.10


                Sort the dates. If the given date is on or after the cut-off date then the first date will be the cut-off date.



                b(4+),(?=.*;2017-04-08;)
                &$1&,
                &
                &nbsp;


                In that case, wrap the 4+ in &nbsp; (using two stages as it saves a byte).



                .22$


                Delete the dates as they have done their job.



                b(4+),.*
                $&¶crossed out $1 is still regular $1 ;(


                If there's an unspaced 4+, then append the meme.



                (.+?),
                <s>$1</s>,


                Strike out all of the obsolete byte counts.






                share|improve this answer















                Retina 0.8.2, 130 bytes



                $
                ;42833
                O`;.5
                b(4+),(?=.*;42833;)
                &$1&,
                &
                &nbsp;
                .12$

                b(4+),.*
                $&¶crossed out $1 is still regular $1 ;(
                (.+?),
                <s>$1</s>,


                Try it online! Link includes test cases. Uses Excel date stamps (days since 1899-12-31 but including 1900-02-49). 141 bytes for a version that takes ISO dates:



                $
                ;2017-04-08
                O`;.10
                b(4+),(?=.*;2017-04-08;)
                &$1&,
                &
                &nbsp;
                .22$

                b(4+),.*
                $&¶crossed out $1 is still regular $1 ;(
                (.+?),
                <s>$1</s>,


                Try it online! Link includes test cases. Explanation:



                $
                ;2017-04-08


                Append the cut-off date to the input.



                O`;.10


                Sort the dates. If the given date is on or after the cut-off date then the first date will be the cut-off date.



                b(4+),(?=.*;2017-04-08;)
                &$1&,
                &
                &nbsp;


                In that case, wrap the 4+ in &nbsp; (using two stages as it saves a byte).



                .22$


                Delete the dates as they have done their job.



                b(4+),.*
                $&¶crossed out $1 is still regular $1 ;(


                If there's an unspaced 4+, then append the meme.



                (.+?),
                <s>$1</s>,


                Strike out all of the obsolete byte counts.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Aug 8 at 19:59

























                answered Aug 8 at 9:05









                Neil

                75.8k744171




                75.8k744171











                • You can save 5 bytes by taking the date-format without -.
                  – Kevin Cruijssen
                  Aug 8 at 9:11










                • @KevinCruijssen I could save even more bytes by asking for it as an Excel date (days since 1899-12-31). How far can I go with this?
                  – Neil
                  Aug 8 at 10:13










                • Hmm.. You know what, that's also fine by me. How the if-statement for the date April 8th, 2017 is done I don't really care. It's not the major part of this challenge.
                  – Kevin Cruijssen
                  Aug 8 at 11:12










                • That would be 42832 for April 8th, 2017 I assume?
                  – Kevin Cruijssen
                  Aug 8 at 11:18











                • @KevinCruijssen My Excel says that's the 7th.
                  – Neil
                  Aug 8 at 11:33
















                • You can save 5 bytes by taking the date-format without -.
                  – Kevin Cruijssen
                  Aug 8 at 9:11










                • @KevinCruijssen I could save even more bytes by asking for it as an Excel date (days since 1899-12-31). How far can I go with this?
                  – Neil
                  Aug 8 at 10:13










                • Hmm.. You know what, that's also fine by me. How the if-statement for the date April 8th, 2017 is done I don't really care. It's not the major part of this challenge.
                  – Kevin Cruijssen
                  Aug 8 at 11:12










                • That would be 42832 for April 8th, 2017 I assume?
                  – Kevin Cruijssen
                  Aug 8 at 11:18











                • @KevinCruijssen My Excel says that's the 7th.
                  – Neil
                  Aug 8 at 11:33















                You can save 5 bytes by taking the date-format without -.
                – Kevin Cruijssen
                Aug 8 at 9:11




                You can save 5 bytes by taking the date-format without -.
                – Kevin Cruijssen
                Aug 8 at 9:11












                @KevinCruijssen I could save even more bytes by asking for it as an Excel date (days since 1899-12-31). How far can I go with this?
                – Neil
                Aug 8 at 10:13




                @KevinCruijssen I could save even more bytes by asking for it as an Excel date (days since 1899-12-31). How far can I go with this?
                – Neil
                Aug 8 at 10:13












                Hmm.. You know what, that's also fine by me. How the if-statement for the date April 8th, 2017 is done I don't really care. It's not the major part of this challenge.
                – Kevin Cruijssen
                Aug 8 at 11:12




                Hmm.. You know what, that's also fine by me. How the if-statement for the date April 8th, 2017 is done I don't really care. It's not the major part of this challenge.
                – Kevin Cruijssen
                Aug 8 at 11:12












                That would be 42832 for April 8th, 2017 I assume?
                – Kevin Cruijssen
                Aug 8 at 11:18





                That would be 42832 for April 8th, 2017 I assume?
                – Kevin Cruijssen
                Aug 8 at 11:18













                @KevinCruijssen My Excel says that's the 7th.
                – Neil
                Aug 8 at 11:33




                @KevinCruijssen My Excel says that's the 7th.
                – Neil
                Aug 8 at 11:33










                up vote
                1
                down vote













                Ruby, 208 184 180 bytes



                TIO-test



                Thanks for @KevinCruijssen for saving 2 bytes!



                ->n,d*h,t=n;i=20170408>d;f=?n;h.map==[4];f=o&&i ?f+"crossed out #u is still regular #u ;(":f;o&&!i ?"<s>&nbsp;#u&nbsp;</s>":"<s>#u</s>"*", "+", #t"+f


                It's a lambda function that takes a list of numbers and an integer as a date in the format of YYYYmmdd.






                share|improve this answer






















                • Would it be possible to add a TIO-link with test code? And switching formats so it's an integer input would indeed save some bytes. :)
                  – Kevin Cruijssen
                  Aug 9 at 12:21










                • @KevinCruijssen Added link ;)
                  – Peter Lenkefi
                  Aug 9 at 12:27










                • Thanks! +1 from me. You can save 2 bytes by removing the spaces after the ?. Also, for your TIO, you can split your actual submission code and test code with the header/footer, like this. :)
                  – Kevin Cruijssen
                  Aug 9 at 12:41














                up vote
                1
                down vote













                Ruby, 208 184 180 bytes



                TIO-test



                Thanks for @KevinCruijssen for saving 2 bytes!



                ->n,d*h,t=n;i=20170408>d;f=?n;h.map==[4];f=o&&i ?f+"crossed out #u is still regular #u ;(":f;o&&!i ?"<s>&nbsp;#u&nbsp;</s>":"<s>#u</s>"*", "+", #t"+f


                It's a lambda function that takes a list of numbers and an integer as a date in the format of YYYYmmdd.






                share|improve this answer






















                • Would it be possible to add a TIO-link with test code? And switching formats so it's an integer input would indeed save some bytes. :)
                  – Kevin Cruijssen
                  Aug 9 at 12:21










                • @KevinCruijssen Added link ;)
                  – Peter Lenkefi
                  Aug 9 at 12:27










                • Thanks! +1 from me. You can save 2 bytes by removing the spaces after the ?. Also, for your TIO, you can split your actual submission code and test code with the header/footer, like this. :)
                  – Kevin Cruijssen
                  Aug 9 at 12:41












                up vote
                1
                down vote










                up vote
                1
                down vote









                Ruby, 208 184 180 bytes



                TIO-test



                Thanks for @KevinCruijssen for saving 2 bytes!



                ->n,d*h,t=n;i=20170408>d;f=?n;h.map==[4];f=o&&i ?f+"crossed out #u is still regular #u ;(":f;o&&!i ?"<s>&nbsp;#u&nbsp;</s>":"<s>#u</s>"*", "+", #t"+f


                It's a lambda function that takes a list of numbers and an integer as a date in the format of YYYYmmdd.






                share|improve this answer














                Ruby, 208 184 180 bytes



                TIO-test



                Thanks for @KevinCruijssen for saving 2 bytes!



                ->n,d*h,t=n;i=20170408>d;f=?n;h.map==[4];f=o&&i ?f+"crossed out #u is still regular #u ;(":f;o&&!i ?"<s>&nbsp;#u&nbsp;</s>":"<s>#u</s>"*", "+", #t"+f


                It's a lambda function that takes a list of numbers and an integer as a date in the format of YYYYmmdd.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Aug 9 at 13:07

























                answered Aug 9 at 12:19









                Peter Lenkefi

                1,392520




                1,392520











                • Would it be possible to add a TIO-link with test code? And switching formats so it's an integer input would indeed save some bytes. :)
                  – Kevin Cruijssen
                  Aug 9 at 12:21










                • @KevinCruijssen Added link ;)
                  – Peter Lenkefi
                  Aug 9 at 12:27










                • Thanks! +1 from me. You can save 2 bytes by removing the spaces after the ?. Also, for your TIO, you can split your actual submission code and test code with the header/footer, like this. :)
                  – Kevin Cruijssen
                  Aug 9 at 12:41
















                • Would it be possible to add a TIO-link with test code? And switching formats so it's an integer input would indeed save some bytes. :)
                  – Kevin Cruijssen
                  Aug 9 at 12:21










                • @KevinCruijssen Added link ;)
                  – Peter Lenkefi
                  Aug 9 at 12:27










                • Thanks! +1 from me. You can save 2 bytes by removing the spaces after the ?. Also, for your TIO, you can split your actual submission code and test code with the header/footer, like this. :)
                  – Kevin Cruijssen
                  Aug 9 at 12:41















                Would it be possible to add a TIO-link with test code? And switching formats so it's an integer input would indeed save some bytes. :)
                – Kevin Cruijssen
                Aug 9 at 12:21




                Would it be possible to add a TIO-link with test code? And switching formats so it's an integer input would indeed save some bytes. :)
                – Kevin Cruijssen
                Aug 9 at 12:21












                @KevinCruijssen Added link ;)
                – Peter Lenkefi
                Aug 9 at 12:27




                @KevinCruijssen Added link ;)
                – Peter Lenkefi
                Aug 9 at 12:27












                Thanks! +1 from me. You can save 2 bytes by removing the spaces after the ?. Also, for your TIO, you can split your actual submission code and test code with the header/footer, like this. :)
                – Kevin Cruijssen
                Aug 9 at 12:41




                Thanks! +1 from me. You can save 2 bytes by removing the spaces after the ?. Also, for your TIO, you can split your actual submission code and test code with the header/footer, like this. :)
                – Kevin Cruijssen
                Aug 9 at 12:41










                up vote
                1
                down vote













                JavaScript, 194 bytes



                (a,d,l=a.pop(),n=a.find(x=>/^4+$/.exec(x)),s=a.map(n=>`<s>$n</s>, `).join``+l)=>d<1491609600?n?s+`
                crossed out $n is still regular $n ;(`:s:s.replace(/>(4+)</g,(_,m)=>`>&nbsp;$m&nbsp;<`)





                f=
                (a,d,l=a.pop(),n=a.find(x=>/^4+$/.exec(x)),s=a.map(n=>`<s>$n</s>, `).join``+l)=>d<1491609600?n?s+`
                crossed out $n is still regular $n ;(`:s:s.replace(/>(4+)</g,(_,m)=>`>&nbsp;$m&nbsp;<`)


                const date = s => Date.parse(s) / 1000
                for(const output of [
                f([50, 48, 44, 41], date('January 1, 2017')),
                f([500, 475, 444, 301, 248], date('June 2, 2018')),
                f([8, 6, 4], date('December 5, 2017')),
                f([8, 6, 4, 3, 2], date('September 15, 2015')),
                f([119, 99, 84, 82, 74, 60, 51, 44, 36, 34], date('February 29, 2016')),
                f([404, 123, 44], date('March 4, 2016')),
                f([4, 3], date('April 8, 2017')),
                f([44], date('October 22, 2017')),
                f([50000, 44444, 1500], date('August 1, 2018')),
                f([50, 38, 23], date('September 8, 2001')),
                ]) console.log(output)








                share|improve this answer
























                  up vote
                  1
                  down vote













                  JavaScript, 194 bytes



                  (a,d,l=a.pop(),n=a.find(x=>/^4+$/.exec(x)),s=a.map(n=>`<s>$n</s>, `).join``+l)=>d<1491609600?n?s+`
                  crossed out $n is still regular $n ;(`:s:s.replace(/>(4+)</g,(_,m)=>`>&nbsp;$m&nbsp;<`)





                  f=
                  (a,d,l=a.pop(),n=a.find(x=>/^4+$/.exec(x)),s=a.map(n=>`<s>$n</s>, `).join``+l)=>d<1491609600?n?s+`
                  crossed out $n is still regular $n ;(`:s:s.replace(/>(4+)</g,(_,m)=>`>&nbsp;$m&nbsp;<`)


                  const date = s => Date.parse(s) / 1000
                  for(const output of [
                  f([50, 48, 44, 41], date('January 1, 2017')),
                  f([500, 475, 444, 301, 248], date('June 2, 2018')),
                  f([8, 6, 4], date('December 5, 2017')),
                  f([8, 6, 4, 3, 2], date('September 15, 2015')),
                  f([119, 99, 84, 82, 74, 60, 51, 44, 36, 34], date('February 29, 2016')),
                  f([404, 123, 44], date('March 4, 2016')),
                  f([4, 3], date('April 8, 2017')),
                  f([44], date('October 22, 2017')),
                  f([50000, 44444, 1500], date('August 1, 2018')),
                  f([50, 38, 23], date('September 8, 2001')),
                  ]) console.log(output)








                  share|improve this answer






















                    up vote
                    1
                    down vote










                    up vote
                    1
                    down vote









                    JavaScript, 194 bytes



                    (a,d,l=a.pop(),n=a.find(x=>/^4+$/.exec(x)),s=a.map(n=>`<s>$n</s>, `).join``+l)=>d<1491609600?n?s+`
                    crossed out $n is still regular $n ;(`:s:s.replace(/>(4+)</g,(_,m)=>`>&nbsp;$m&nbsp;<`)





                    f=
                    (a,d,l=a.pop(),n=a.find(x=>/^4+$/.exec(x)),s=a.map(n=>`<s>$n</s>, `).join``+l)=>d<1491609600?n?s+`
                    crossed out $n is still regular $n ;(`:s:s.replace(/>(4+)</g,(_,m)=>`>&nbsp;$m&nbsp;<`)


                    const date = s => Date.parse(s) / 1000
                    for(const output of [
                    f([50, 48, 44, 41], date('January 1, 2017')),
                    f([500, 475, 444, 301, 248], date('June 2, 2018')),
                    f([8, 6, 4], date('December 5, 2017')),
                    f([8, 6, 4, 3, 2], date('September 15, 2015')),
                    f([119, 99, 84, 82, 74, 60, 51, 44, 36, 34], date('February 29, 2016')),
                    f([404, 123, 44], date('March 4, 2016')),
                    f([4, 3], date('April 8, 2017')),
                    f([44], date('October 22, 2017')),
                    f([50000, 44444, 1500], date('August 1, 2018')),
                    f([50, 38, 23], date('September 8, 2001')),
                    ]) console.log(output)








                    share|improve this answer












                    JavaScript, 194 bytes



                    (a,d,l=a.pop(),n=a.find(x=>/^4+$/.exec(x)),s=a.map(n=>`<s>$n</s>, `).join``+l)=>d<1491609600?n?s+`
                    crossed out $n is still regular $n ;(`:s:s.replace(/>(4+)</g,(_,m)=>`>&nbsp;$m&nbsp;<`)





                    f=
                    (a,d,l=a.pop(),n=a.find(x=>/^4+$/.exec(x)),s=a.map(n=>`<s>$n</s>, `).join``+l)=>d<1491609600?n?s+`
                    crossed out $n is still regular $n ;(`:s:s.replace(/>(4+)</g,(_,m)=>`>&nbsp;$m&nbsp;<`)


                    const date = s => Date.parse(s) / 1000
                    for(const output of [
                    f([50, 48, 44, 41], date('January 1, 2017')),
                    f([500, 475, 444, 301, 248], date('June 2, 2018')),
                    f([8, 6, 4], date('December 5, 2017')),
                    f([8, 6, 4, 3, 2], date('September 15, 2015')),
                    f([119, 99, 84, 82, 74, 60, 51, 44, 36, 34], date('February 29, 2016')),
                    f([404, 123, 44], date('March 4, 2016')),
                    f([4, 3], date('April 8, 2017')),
                    f([44], date('October 22, 2017')),
                    f([50000, 44444, 1500], date('August 1, 2018')),
                    f([50, 38, 23], date('September 8, 2001')),
                    ]) console.log(output)








                    f=
                    (a,d,l=a.pop(),n=a.find(x=>/^4+$/.exec(x)),s=a.map(n=>`<s>$n</s>, `).join``+l)=>d<1491609600?n?s+`
                    crossed out $n is still regular $n ;(`:s:s.replace(/>(4+)</g,(_,m)=>`>&nbsp;$m&nbsp;<`)


                    const date = s => Date.parse(s) / 1000
                    for(const output of [
                    f([50, 48, 44, 41], date('January 1, 2017')),
                    f([500, 475, 444, 301, 248], date('June 2, 2018')),
                    f([8, 6, 4], date('December 5, 2017')),
                    f([8, 6, 4, 3, 2], date('September 15, 2015')),
                    f([119, 99, 84, 82, 74, 60, 51, 44, 36, 34], date('February 29, 2016')),
                    f([404, 123, 44], date('March 4, 2016')),
                    f([4, 3], date('April 8, 2017')),
                    f([44], date('October 22, 2017')),
                    f([50000, 44444, 1500], date('August 1, 2018')),
                    f([50, 38, 23], date('September 8, 2001')),
                    ]) console.log(output)





                    f=
                    (a,d,l=a.pop(),n=a.find(x=>/^4+$/.exec(x)),s=a.map(n=>`<s>$n</s>, `).join``+l)=>d<1491609600?n?s+`
                    crossed out $n is still regular $n ;(`:s:s.replace(/>(4+)</g,(_,m)=>`>&nbsp;$m&nbsp;<`)


                    const date = s => Date.parse(s) / 1000
                    for(const output of [
                    f([50, 48, 44, 41], date('January 1, 2017')),
                    f([500, 475, 444, 301, 248], date('June 2, 2018')),
                    f([8, 6, 4], date('December 5, 2017')),
                    f([8, 6, 4, 3, 2], date('September 15, 2015')),
                    f([119, 99, 84, 82, 74, 60, 51, 44, 36, 34], date('February 29, 2016')),
                    f([404, 123, 44], date('March 4, 2016')),
                    f([4, 3], date('April 8, 2017')),
                    f([44], date('October 22, 2017')),
                    f([50000, 44444, 1500], date('August 1, 2018')),
                    f([50, 38, 23], date('September 8, 2001')),
                    ]) console.log(output)






                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Aug 10 at 4:03









                    darrylyeo

                    5,164934




                    5,164934




















                        up vote
                        1
                        down vote














                        Haskell, 227 bytes





                        i=1>0;i('4':s)=i s;i(_:_)=0>1
                        f l d=m l++c where a=head$filter i l;t d|d<42832=("","ncrossed out "++a++" is still regular "++a++" ;(")|1>0=("&nbsp;","");(b,c)=t d;w n|i n=b++n++b|1>0=n;m[n]=n;m(x:s)="<s>"++w x++"</s>, "++m s


                        Try it online!
                        Run f with list l and date d. 42832 is the changing date.






                        share|improve this answer






















                        • Would it be possible to add a TIO-link with test code?
                          – Kevin Cruijssen
                          Aug 9 at 12:21










                        • @KevinCruijssen in Russia it's banned
                          – Ð•вгений Новиков
                          Aug 9 at 15:38










                        • Oh, didn't knew that. Well, I don't know Haskell too well, otherwise I would have tested it myself a bit. But the code itself seems logical, so +1 from me nonetheless.
                          – Kevin Cruijssen
                          Aug 9 at 16:39










                        • @KevinCruijssen you can copy code to TIO, make link and add it to post
                          – Ð•вгений Новиков
                          Aug 9 at 20:12










                        • @KevinCruijssen TIO is banned by mistake, but I'm too lazy to use proxy/contact ISP about it
                          – Ð•вгений Новиков
                          Aug 9 at 20:18














                        up vote
                        1
                        down vote














                        Haskell, 227 bytes





                        i=1>0;i('4':s)=i s;i(_:_)=0>1
                        f l d=m l++c where a=head$filter i l;t d|d<42832=("","ncrossed out "++a++" is still regular "++a++" ;(")|1>0=("&nbsp;","");(b,c)=t d;w n|i n=b++n++b|1>0=n;m[n]=n;m(x:s)="<s>"++w x++"</s>, "++m s


                        Try it online!
                        Run f with list l and date d. 42832 is the changing date.






                        share|improve this answer






















                        • Would it be possible to add a TIO-link with test code?
                          – Kevin Cruijssen
                          Aug 9 at 12:21










                        • @KevinCruijssen in Russia it's banned
                          – Ð•вгений Новиков
                          Aug 9 at 15:38










                        • Oh, didn't knew that. Well, I don't know Haskell too well, otherwise I would have tested it myself a bit. But the code itself seems logical, so +1 from me nonetheless.
                          – Kevin Cruijssen
                          Aug 9 at 16:39










                        • @KevinCruijssen you can copy code to TIO, make link and add it to post
                          – Ð•вгений Новиков
                          Aug 9 at 20:12










                        • @KevinCruijssen TIO is banned by mistake, but I'm too lazy to use proxy/contact ISP about it
                          – Ð•вгений Новиков
                          Aug 9 at 20:18












                        up vote
                        1
                        down vote










                        up vote
                        1
                        down vote










                        Haskell, 227 bytes





                        i=1>0;i('4':s)=i s;i(_:_)=0>1
                        f l d=m l++c where a=head$filter i l;t d|d<42832=("","ncrossed out "++a++" is still regular "++a++" ;(")|1>0=("&nbsp;","");(b,c)=t d;w n|i n=b++n++b|1>0=n;m[n]=n;m(x:s)="<s>"++w x++"</s>, "++m s


                        Try it online!
                        Run f with list l and date d. 42832 is the changing date.






                        share|improve this answer















                        Haskell, 227 bytes





                        i=1>0;i('4':s)=i s;i(_:_)=0>1
                        f l d=m l++c where a=head$filter i l;t d|d<42832=("","ncrossed out "++a++" is still regular "++a++" ;(")|1>0=("&nbsp;","");(b,c)=t d;w n|i n=b++n++b|1>0=n;m[n]=n;m(x:s)="<s>"++w x++"</s>, "++m s


                        Try it online!
                        Run f with list l and date d. 42832 is the changing date.







                        share|improve this answer














                        share|improve this answer



                        share|improve this answer








                        edited Aug 11 at 11:52









                        Laikoni

                        18.7k33388




                        18.7k33388










                        answered Aug 8 at 18:47









                        Евгений Новиков

                        822116




                        822116











                        • Would it be possible to add a TIO-link with test code?
                          – Kevin Cruijssen
                          Aug 9 at 12:21










                        • @KevinCruijssen in Russia it's banned
                          – Ð•вгений Новиков
                          Aug 9 at 15:38










                        • Oh, didn't knew that. Well, I don't know Haskell too well, otherwise I would have tested it myself a bit. But the code itself seems logical, so +1 from me nonetheless.
                          – Kevin Cruijssen
                          Aug 9 at 16:39










                        • @KevinCruijssen you can copy code to TIO, make link and add it to post
                          – Ð•вгений Новиков
                          Aug 9 at 20:12










                        • @KevinCruijssen TIO is banned by mistake, but I'm too lazy to use proxy/contact ISP about it
                          – Ð•вгений Новиков
                          Aug 9 at 20:18
















                        • Would it be possible to add a TIO-link with test code?
                          – Kevin Cruijssen
                          Aug 9 at 12:21










                        • @KevinCruijssen in Russia it's banned
                          – Ð•вгений Новиков
                          Aug 9 at 15:38










                        • Oh, didn't knew that. Well, I don't know Haskell too well, otherwise I would have tested it myself a bit. But the code itself seems logical, so +1 from me nonetheless.
                          – Kevin Cruijssen
                          Aug 9 at 16:39










                        • @KevinCruijssen you can copy code to TIO, make link and add it to post
                          – Ð•вгений Новиков
                          Aug 9 at 20:12










                        • @KevinCruijssen TIO is banned by mistake, but I'm too lazy to use proxy/contact ISP about it
                          – Ð•вгений Новиков
                          Aug 9 at 20:18















                        Would it be possible to add a TIO-link with test code?
                        – Kevin Cruijssen
                        Aug 9 at 12:21




                        Would it be possible to add a TIO-link with test code?
                        – Kevin Cruijssen
                        Aug 9 at 12:21












                        @KevinCruijssen in Russia it's banned
                        – Ð•вгений Новиков
                        Aug 9 at 15:38




                        @KevinCruijssen in Russia it's banned
                        – Ð•вгений Новиков
                        Aug 9 at 15:38












                        Oh, didn't knew that. Well, I don't know Haskell too well, otherwise I would have tested it myself a bit. But the code itself seems logical, so +1 from me nonetheless.
                        – Kevin Cruijssen
                        Aug 9 at 16:39




                        Oh, didn't knew that. Well, I don't know Haskell too well, otherwise I would have tested it myself a bit. But the code itself seems logical, so +1 from me nonetheless.
                        – Kevin Cruijssen
                        Aug 9 at 16:39












                        @KevinCruijssen you can copy code to TIO, make link and add it to post
                        – Ð•вгений Новиков
                        Aug 9 at 20:12




                        @KevinCruijssen you can copy code to TIO, make link and add it to post
                        – Ð•вгений Новиков
                        Aug 9 at 20:12












                        @KevinCruijssen TIO is banned by mistake, but I'm too lazy to use proxy/contact ISP about it
                        – Ð•вгений Новиков
                        Aug 9 at 20:18




                        @KevinCruijssen TIO is banned by mistake, but I'm too lazy to use proxy/contact ISP about it
                        – Ð•вгений Новиков
                        Aug 9 at 20:18










                        up vote
                        1
                        down vote














                        JavaScript (Node.js), 173 bytes





                        a=>d=>a.map(x=>--i<1?x:`<s>$(b=/^4+$/.exec(x)?(c=x,d)<14915808e5?n=:"&nbsp;":"")+x+b</s>`,n="",c=0,i=a.length).join`, `+(n&&`
                        crossed out $c is still regular $c ;(`)


                        Try it online!



                        Using curry syntax f(array)(js_timestamp)






                        share|improve this answer
























                          up vote
                          1
                          down vote














                          JavaScript (Node.js), 173 bytes





                          a=>d=>a.map(x=>--i<1?x:`<s>$(b=/^4+$/.exec(x)?(c=x,d)<14915808e5?n=:"&nbsp;":"")+x+b</s>`,n="",c=0,i=a.length).join`, `+(n&&`
                          crossed out $c is still regular $c ;(`)


                          Try it online!



                          Using curry syntax f(array)(js_timestamp)






                          share|improve this answer






















                            up vote
                            1
                            down vote










                            up vote
                            1
                            down vote










                            JavaScript (Node.js), 173 bytes





                            a=>d=>a.map(x=>--i<1?x:`<s>$(b=/^4+$/.exec(x)?(c=x,d)<14915808e5?n=:"&nbsp;":"")+x+b</s>`,n="",c=0,i=a.length).join`, `+(n&&`
                            crossed out $c is still regular $c ;(`)


                            Try it online!



                            Using curry syntax f(array)(js_timestamp)






                            share|improve this answer













                            JavaScript (Node.js), 173 bytes





                            a=>d=>a.map(x=>--i<1?x:`<s>$(b=/^4+$/.exec(x)?(c=x,d)<14915808e5?n=:"&nbsp;":"")+x+b</s>`,n="",c=0,i=a.length).join`, `+(n&&`
                            crossed out $c is still regular $c ;(`)


                            Try it online!



                            Using curry syntax f(array)(js_timestamp)







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Sep 14 at 7:07









                            Shieru Asakoto

                            1,660311




                            1,660311



























                                 

                                draft saved


                                draft discarded















































                                 


                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function ()
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f170188%2fcrossed-out-44-is-still-regular-44%23new-answer', 'question_page');

                                );

                                Post as a guest













































































                                Popular posts from this blog

                                Which professions warranted travel in Medieval times?

                                How do so many people here on Academia.SE, and in general, afford lavish higher education programs?

                                Trouble downloading packages list due to a “Hash sum mismatch” error