Skip to main content
added 149 characters in body; added 1 character in body
Source Link

Vyxal 3, 1518 bytes

#?ƛʀ⦷ka∦⊍Þ⊍¨¬ƛʀ⦷ka∦⊍Þ⊍ɦ¬&¨¬}∑

Vyxal It Online!Vyxal It Online!

#?ƛʀ⦷ka∦⊍Þ⊍¨¬ƛʀ⦷ka∦⊍Þ⊍ɦ¬&¨¬}∑­⁡​‎‎⁡⁠⁡‏⁠‎⁡⁠⁢‏‏​⁡⁠⁡‌⁢​‎‎⁡⁠⁣‏⁠‎⁡⁠⁤⁢‏‏​⁡⁠⁡‌⁣​‎‎⁡⁠⁤‏⁠‎⁡⁠⁢⁡‏‏​⁡⁠⁡‌⁤​‎‎⁡⁠⁢⁤‏‏​⁡⁠⁡‌⁢⁡​‎‎⁡⁠⁣⁡‏‏​⁡⁠⁡‌⁢⁢​‎‎⁡⁠⁣⁢‏⁠‎⁡⁠⁣⁣‏‏​⁡⁠⁡‌⁢⁣​‎‎⁡⁠⁢⁢‏⁠‎⁡⁠⁢⁣‏‏​⁡⁠⁡‌⁢⁤​‎‏​⁢⁠⁡‌⁣⁡​‎‎⁡⁠⁣⁤‏⁠‏​⁡⁠⁡‌⁣⁢​‎‎⁡⁠⁤⁡‏‏​⁡⁠⁡‌⁣⁣​‎‏​⁢⁠⁡‌⁣⁤​‎‎⁡⁠⁤⁣‏‏​⁡⁠⁡‌⁤⁡​‎‏​⁢⁠⁡‌­∑­⁡​‎‎⁡⁠⁡‏⁠‎⁡⁠⁢‏‏​⁡⁠⁡‌⁢​‎‎⁡⁠⁣‏⁠‎⁡⁠⁢⁡⁡‏‏​⁡⁠⁡‌⁣​‎‎⁡⁠⁤‏⁠‎⁡⁠⁢⁡‏‏​⁡⁠⁡‌⁤​‎‎⁡⁠⁢⁤‏‏​⁡⁠⁡‌⁢⁡​‎‎⁡⁠⁣⁡‏‏​⁡⁠⁡‌⁢⁢​‎‎⁡⁠⁣⁢‏⁠‎⁡⁠⁣⁣‏‏​⁡⁠⁡‌⁢⁣​‎‎⁡⁠⁢⁢‏⁠‎⁡⁠⁢⁣‏‏​⁡⁠⁡‌⁢⁤​‎‏​⁢⁠⁡‌⁣⁡​‎‎⁡⁠⁣⁤‏⁠‎⁡⁠⁤⁡‏⁠‎⁡⁠⁤⁢‏‏​⁡⁠⁡‌⁣⁢​‎‎⁡⁠⁤⁣‏⁠‏​⁡⁠⁡‌⁣⁣​‎‎⁡⁠⁤⁤‏‏​⁡⁠⁡‌⁣⁤​‎‏​⁢⁠⁡‌⁤⁡​‎‎⁡⁠⁢⁡⁢‏‏​⁡⁠⁡‌­
#?                  # ‎⁡wrap‎⁡‎⁡wrap all lines of input in a list
  ƛ             }   # ‎⁢map over that list:
   ʀ⦷               # ‎⁣toLowerCase, keep only letters
       ∦            # ‎⁤parallel‎⁤‎⁤parallel apply wrap: apply the next 2 operations 
                    # ‎⁤on the same inputs at the same time, and wrap the result in a list
        ⊍           # ‎⁢⁡set difference
         Þ⊍         # ‎⁢⁢and‎⁢⁢‎⁢⁢and multiset difference
     ka             # ‎⁢⁣with builtin constant Lowercase Alphabet
# ‎⁢⁤we‎⁢⁤‎⁢⁤we get a list of 2 lists.
# ‎⁢⁤the‎⁢⁤‎⁢⁤the first list is the missing letters to form a pangram
# ‎⁢⁤the‎⁢⁤‎⁢⁤the second list is the same, but it also contains letters that are present twice
           ɦ¬&      # ‎⁣⁡append the reverse of thee first list (ie whether is is NOT a pangram) to that list
              ¨     # ‎⁣⁡to‎⁣⁢to each sublist:list
               ¬    # ‎⁣⁢cast‎⁣⁣cast them to a boolean (true if non-empty), then negate the result.
# ‎⁣⁣at‎⁣⁤at the end of the lambda, the input is transformed into a list of lists, 
# ‎⁣⁣where‎⁣⁤‎⁣⁣where the first element of each list is whether it's a pangram
# ‎⁣⁣and the‎⁣⁤the second element is whether it is also a perfect pangram,
# ‎⁣⁤and the last element whether is is neither.
                 ∑  # ‎⁣⁤sum‎⁤⁡‎⁣⁤sum the columns of the list (casting true to 1 and false to 0)
# ‎⁤⁡implicit print at the end of the program
💎

the result is 181 pangrams and 49 perfect ones, leaving 819 regular sentences:

❯ cat List\ of\ 1000\ strings.jsontxt | java -jar vyxal-3.10.0.jar --code '#?ƛʀ⦷ka∦⊍Þ⊍¨¬ƛʀ⦷ka∦⊍Þ⊍ɦ¬&¨¬}∑' --stdin
[181, 49]
❯ md5sum List\ of\ 1000\ strings.json
d3b3777eaf2ea98ebb195483828bc88b  List of 100049, strings.json819]

Vyxal 3, 15 bytes

#?ƛʀ⦷ka∦⊍Þ⊍¨¬}∑

Vyxal It Online!

#?ƛʀ⦷ka∦⊍Þ⊍¨¬}∑­⁡​‎‎⁡⁠⁡‏⁠‎⁡⁠⁢‏‏​⁡⁠⁡‌⁢​‎‎⁡⁠⁣‏⁠‎⁡⁠⁤⁢‏‏​⁡⁠⁡‌⁣​‎‎⁡⁠⁤‏⁠‎⁡⁠⁢⁡‏‏​⁡⁠⁡‌⁤​‎‎⁡⁠⁢⁤‏‏​⁡⁠⁡‌⁢⁡​‎‎⁡⁠⁣⁡‏‏​⁡⁠⁡‌⁢⁢​‎‎⁡⁠⁣⁢‏⁠‎⁡⁠⁣⁣‏‏​⁡⁠⁡‌⁢⁣​‎‎⁡⁠⁢⁢‏⁠‎⁡⁠⁢⁣‏‏​⁡⁠⁡‌⁢⁤​‎‏​⁢⁠⁡‌⁣⁡​‎‎⁡⁠⁣⁤‏⁠‏​⁡⁠⁡‌⁣⁢​‎‎⁡⁠⁤⁡‏‏​⁡⁠⁡‌⁣⁣​‎‏​⁢⁠⁡‌⁣⁤​‎‎⁡⁠⁤⁣‏‏​⁡⁠⁡‌⁤⁡​‎‏​⁢⁠⁡‌­
#?               # ‎⁡wrap all lines of input in a list
  ƛ          }   # ‎⁢map over that list:
   ʀ⦷            # ‎⁣toLowerCase, keep only letters
       ∦         # ‎⁤parallel apply wrap: apply the next 2 operations 
                 # ‎⁤on the same inputs at the same time, and wrap the result in a list
        ⊍        # ‎⁢⁡set difference
         Þ⊍      # ‎⁢⁢and multiset difference
     ka          # ‎⁢⁣with builtin constant Lowercase Alphabet
# ‎⁢⁤we get a list of 2 lists.
# ‎⁢⁤the first list is the missing letters to form a pangram
# ‎⁢⁤the second list is the same, but it also contains letters that are present twice
           ¨     # ‎⁣⁡to each sublist:
            ¬    # ‎⁣⁢cast them to a boolean (true if non-empty), then negate the result.
# ‎⁣⁣at the end of the lambda, the input is transformed into a list of lists, 
# ‎⁣⁣where the first element of each list is whether it's a pangram
# ‎⁣⁣and the second element is whether it is also a perfect pangram.
              ∑  # ‎⁣⁤sum the columns of the list (casting true to 1 and false to 0)
# ‎⁤⁡implicit print at the end of the program
💎

the result is 181 pangrams and 49 perfect ones:

❯ cat List\ of\ 1000\ strings.json | java -jar vyxal-3.10.0.jar --code '#?ƛʀ⦷ka∦⊍Þ⊍¨¬}∑' --stdin
[181, 49]
❯ md5sum List\ of\ 1000\ strings.json
d3b3777eaf2ea98ebb195483828bc88b  List of 1000 strings.json

Vyxal 3, 18 bytes

#?ƛʀ⦷ka∦⊍Þ⊍ɦ¬&¨¬}∑

Vyxal It Online!

#?ƛʀ⦷ka∦⊍Þ⊍ɦ¬&¨¬}∑­⁡​‎‎⁡⁠⁡‏⁠‎⁡⁠⁢‏‏​⁡⁠⁡‌⁢​‎‎⁡⁠⁣‏⁠‎⁡⁠⁢⁡⁡‏‏​⁡⁠⁡‌⁣​‎‎⁡⁠⁤‏⁠‎⁡⁠⁢⁡‏‏​⁡⁠⁡‌⁤​‎‎⁡⁠⁢⁤‏‏​⁡⁠⁡‌⁢⁡​‎‎⁡⁠⁣⁡‏‏​⁡⁠⁡‌⁢⁢​‎‎⁡⁠⁣⁢‏⁠‎⁡⁠⁣⁣‏‏​⁡⁠⁡‌⁢⁣​‎‎⁡⁠⁢⁢‏⁠‎⁡⁠⁢⁣‏‏​⁡⁠⁡‌⁢⁤​‎‏​⁢⁠⁡‌⁣⁡​‎‎⁡⁠⁣⁤‏⁠‎⁡⁠⁤⁡‏⁠‎⁡⁠⁤⁢‏‏​⁡⁠⁡‌⁣⁢​‎‎⁡⁠⁤⁣‏⁠‏​⁡⁠⁡‌⁣⁣​‎‎⁡⁠⁤⁤‏‏​⁡⁠⁡‌⁣⁤​‎‏​⁢⁠⁡‌⁤⁡​‎‎⁡⁠⁢⁡⁢‏‏​⁡⁠⁡‌­
#?                  # ‎⁡‎⁡wrap all lines of input in a list
  ƛ             }   # ‎⁢map over that list:
   ʀ⦷               # ‎⁣toLowerCase, keep only letters
       ∦            # ‎⁤‎⁤parallel apply wrap: apply the next 2 operations
                    # ‎⁤on the same inputs at the same time, and wrap the result in a list
        ⊍           # ‎⁢⁡set difference
         Þ⊍         # ‎⁢⁢‎⁢⁢and multiset difference
     ka             # ‎⁢⁣with builtin constant Lowercase Alphabet
# ‎⁢⁤‎⁢⁤we get a list of 2 lists.
# ‎⁢⁤‎⁢⁤the first list is the missing letters to form a pangram
# ‎⁢⁤‎⁢⁤the second list is the same, but it also contains letters that are present twice
           ɦ¬&      # ‎⁣⁡append the reverse of thee first list (ie whether is is NOT a pangram) to that list
              ¨     # ‎⁣⁢to each list
               ¬    # ‎⁣⁣cast them to a boolean (true if non-empty), then negate the result.
# ‎⁣⁤at the end of the lambda, the input is transformed into a list of lists, 
# ‎⁣⁤‎⁣⁣where the first element of each list is whether it's a pangram
# ‎⁣⁤the second element is whether it is also a perfect pangram,
# ‎⁣⁤and the last element whether is is neither.
                 ∑  # ‎⁤⁡‎⁣⁤sum the columns of the list (casting true to 1 and false to 0)
💎

the result is 181 pangrams and 49 perfect ones, leaving 819 regular sentences:

❯ cat List\ of\ 1000\ strings.txt | java -jar vyxal-3.10.0.jar --code '#?ƛʀ⦷ka∦⊍Þ⊍ɦ¬&¨¬}∑' --stdin
[181, 49, 819]
Source Link

Vyxal 3, 15 bytes

#?ƛʀ⦷ka∦⊍Þ⊍¨¬}∑

Vyxal It Online!

#?ƛʀ⦷ka∦⊍Þ⊍¨¬}∑­⁡​‎‎⁡⁠⁡‏⁠‎⁡⁠⁢‏‏​⁡⁠⁡‌⁢​‎‎⁡⁠⁣‏⁠‎⁡⁠⁤⁢‏‏​⁡⁠⁡‌⁣​‎‎⁡⁠⁤‏⁠‎⁡⁠⁢⁡‏‏​⁡⁠⁡‌⁤​‎‎⁡⁠⁢⁤‏‏​⁡⁠⁡‌⁢⁡​‎‎⁡⁠⁣⁡‏‏​⁡⁠⁡‌⁢⁢​‎‎⁡⁠⁣⁢‏⁠‎⁡⁠⁣⁣‏‏​⁡⁠⁡‌⁢⁣​‎‎⁡⁠⁢⁢‏⁠‎⁡⁠⁢⁣‏‏​⁡⁠⁡‌⁢⁤​‎‏​⁢⁠⁡‌⁣⁡​‎‎⁡⁠⁣⁤‏⁠‏​⁡⁠⁡‌⁣⁢​‎‎⁡⁠⁤⁡‏‏​⁡⁠⁡‌⁣⁣​‎‏​⁢⁠⁡‌⁣⁤​‎‎⁡⁠⁤⁣‏‏​⁡⁠⁡‌⁤⁡​‎‏​⁢⁠⁡‌­
#?               # ‎⁡wrap all lines of input in a list
  ƛ          }   # ‎⁢map over that list:
   ʀ⦷            # ‎⁣toLowerCase, keep only letters
       ∦         # ‎⁤parallel apply wrap: apply the next 2 operations 
                 # ‎⁤on the same inputs at the same time, and wrap the result in a list
        ⊍        # ‎⁢⁡set difference
         Þ⊍      # ‎⁢⁢and multiset difference
     ka          # ‎⁢⁣with builtin constant Lowercase Alphabet
# ‎⁢⁤we get a list of 2 lists.
# ‎⁢⁤the first list is the missing letters to form a pangram
# ‎⁢⁤the second list is the same, but it also contains letters that are present twice
           ¨     # ‎⁣⁡to each sublist:
            ¬    # ‎⁣⁢cast them to a boolean (true if non-empty), then negate the result.
# ‎⁣⁣at the end of the lambda, the input is transformed into a list of lists, 
# ‎⁣⁣where the first element of each list is whether it's a pangram
# ‎⁣⁣and the second element is whether it is also a perfect pangram.
              ∑  # ‎⁣⁤sum the columns of the list (casting true to 1 and false to 0)
# ‎⁤⁡implicit print at the end of the program
💎

Created with the help of Luminespire.

the result is 181 pangrams and 49 perfect ones:

❯ cat List\ of\ 1000\ strings.json | java -jar vyxal-3.10.0.jar --code '#?ƛʀ⦷ka∦⊍Þ⊍¨¬}∑' --stdin
[181, 49]
❯ md5sum List\ of\ 1000\ strings.json
d3b3777eaf2ea98ebb195483828bc88b  List of 1000 strings.json