Jewels and stones: Difference between revisions

m
syntax highlighting fixup automation
(add bqn)
m (syntax highlighting fixup automation)
Line 29:
{{trans|Python}}
 
<langsyntaxhighlight lang="11l">F count_jewels(s, j)
R sum(s.map(x -> Int(x C @j)))
 
print(count_jewels(‘aAAbbbb’, ‘aA’))
print(count_jewels(‘ZZ’, ‘z’))</langsyntaxhighlight>
 
{{out}}
Line 43:
=={{header|8080 Assembly}}==
 
<langsyntaxhighlight lang="8080asm"> org 100h
jmp demo
;;; Count jewels.
Line 105:
;;; Next free page of memory is used for the jewel array
jpage: equ $/256+1
jarr: equ jpage*256</langsyntaxhighlight>
 
{{out}}
Line 114:
=={{header|8086 Assembly}}==
 
<langsyntaxhighlight lang="asm"> cpu 8086
bits 16
org 100h
Line 167:
num: db '$'
stones: db 'aAAbbbb',0 ; Example from the task
jewels: db 'aA',0</langsyntaxhighlight>
 
{{out}}
Line 174:
 
=={{header|Ada}}==
<langsyntaxhighlight Adalang="ada">with Ada.Text_IO;
 
procedure Jewels_And_Stones is
Line 205:
Show ("aAAbbbb", "aA");
Show ("ZZ", "z");
end Jewels_And_Stones;</langsyntaxhighlight>
 
{{out}}
Line 212:
 
=={{header|ALGOL 68}}==
<langsyntaxhighlight lang="algol68">BEGIN
# procedure that counts the number of times the letters in jewels occur in stones #
PROC count jewels = ( STRING stones, jewels )INT:
Line 248:
print( ( count jewels( "ZZ", "z" ), newline ) )
 
END</langsyntaxhighlight>
{{out}}
<pre> +3
Line 258:
{{works with|Dyalog APL}}
 
<syntaxhighlight lang ="apl">jewels ← +/∊⍨</langsyntaxhighlight>
 
{{out}}
Line 268:
=={{header|AppleScript}}==
===Functional===
<langsyntaxhighlight lang="applescript">-- jewelCount :: String -> String -> Int
on jewelCount(jewels, stones)
set js to chars(jewels)
Line 390:
set my text item delimiters to dlm
str
end unlines</langsyntaxhighlight>
{{Out}}
<pre>3
Line 397:
===Idiomatic===
 
<langsyntaxhighlight lang="applescript">on jewelsAndStones(stones, jewels)
set counter to 0
considering case
Line 408:
end jewelsAndStones
 
jewelsAndStones("aAAbBbb", "aAb")</langsyntaxhighlight>
 
{{output}}
<syntaxhighlight lang ="applescript">6</langsyntaxhighlight>
 
=={{header|Arturo}}==
<langsyntaxhighlight lang="rebol">count: function [jewels,stones][
size select split stones => [in? & jewels]
]
 
print count "aA" "aAAbbbb"</langsyntaxhighlight>
 
{{out}}
Line 425:
 
=={{header|AutoHotkey}}==
<langsyntaxhighlight AutoHotkeylang="autohotkey">JewelsandStones(ss, jj){
for each, jewel in StrSplit(jj)
for each, stone in StrSplit(ss)
Line 431:
num++
return num
}</langsyntaxhighlight>
Example:<langsyntaxhighlight AutoHotkeylang="autohotkey">MsgBox % JewelsandStones("aAAbbbbz", "aAZ")
return</langsyntaxhighlight>
Outputs:<pre>3</pre>
 
=={{header|AWK}}==
<langsyntaxhighlight AWKlang="awk"># syntax: GAWK -f JEWELS_AND_STONES.AWK
BEGIN {
printf("%d\n",count("aAAbbbb","aA"))
Line 451:
return(total)
}
</syntaxhighlight>
</lang>
{{out}}
<pre>3
Line 458:
=={{header|BASIC}}==
 
<langsyntaxhighlight lang="basic">10 READ N%
20 FOR A%=1 TO N%
30 READ J$,S$
Line 477:
210 DATA "aA","aAAbbbb"
220 DATA "z","ZZZZ"
</syntaxhighlight>
</lang>
 
{{out}}
Line 485:
 
=={{header|BASIC256}}==
<syntaxhighlight lang="basic256">
<lang BASIC256>
function contar_joyas(piedras, joyas)
cont = 0
Line 499:
print contar_joyas("ABCDEFGHIJKLMNOPQRSTUVWXYZ@abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ@abcdefghijklmnopqrstuvwxyz")
print contar_joyas("AB", "")
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 506:
 
=={{header|BCPL}}==
<langsyntaxhighlight lang="bcpl">get "libhdr"
 
let jewels(j, s) = valof
Line 525:
$( show("aA", "aAAbbbb")
show("z", "ZZ")
$)</langsyntaxhighlight>
{{out}}
<pre>"aA" in "aAAbbbb": 3
Line 533:
Similar in nature to APL, mostly due to how trivial the problem is in an array language.
 
<syntaxhighlight lang ="bqn">Jewels←+´∊˜</langsyntaxhighlight>
<syntaxhighlight lang="text"> "aA" Jewels "aAAbbbb"
3</langsyntaxhighlight>
=={{header|Bracmat}}==
<langsyntaxhighlight Bracmatlang="bracmat"> ( f
= stones jewels N
. !arg:(?stones.?jewels)
Line 556:
)
& f$(aAAbbbb.aA)
</syntaxhighlight>
</lang>
'''Output'''
<pre>3</pre>
Line 562:
=={{header|C}}==
{{trans|Kotlin}}
<langsyntaxhighlight lang="c">#include <stdio.h>
#include <string.h>
 
Line 575:
printf("%d\n", count_jewels("ZZ", "z"));
return 0;
}</langsyntaxhighlight>
 
{{output}}
Line 584:
 
=={{header|C sharp}}==
<langsyntaxhighlight lang="csharp">using System;
using System.Linq;
 
Line 598:
return stones.Count(bag.Contains);
}
}</langsyntaxhighlight>
{{out}}
<pre>
Line 607:
=={{header|C++}}==
{{trans|D}}
<langsyntaxhighlight lang="cpp">#include <algorithm>
#include <iostream>
 
Line 627:
 
return 0;
}</langsyntaxhighlight>
{{out}}
<pre>3
Line 633:
 
=={{header|CLU}}==
<langsyntaxhighlight lang="clu">count_jewels = proc (jewels, stones: string) returns (int)
is_jewel: array[bool] := array[bool]$fill(0, 256, false)
for c: char in string$chars(jewels) do
Line 655:
start_up = proc ()
show("aA", "aAAbbbb")
end start_up</langsyntaxhighlight>
{{out}}
<pre>"aA" in "aAAbbbb": 3</pre>
 
=={{header|Cowgol}}==
<langsyntaxhighlight lang="cowgol">include "cowgol.coh";
 
sub count_jewels(stones: [uint8], jewels: [uint8]): (count: uint16) is
Line 688:
 
print_and_count("aAAbbbb", "aA");
print_and_count("ZZ", "z");</langsyntaxhighlight>
 
{{out}}
Line 696:
 
=={{header|Crystal}}==
<langsyntaxhighlight lang="ruby">stones, jewels = "aAAbbbb", "aA"
stones.count(jewels) # => 3
 
Line 705:
 
# This works as intended though:
stones.count { |c| jewels.chars.includes?(c) } # => 2</langsyntaxhighlight>
 
=={{header|D}}==
{{trans|Kotlin}}
<langsyntaxhighlight lang="d">import std.algorithm;
import std.stdio;
 
Line 725:
countJewels("aAAbbbb", "aA").writeln;
countJewels("ZZ", "z").writeln;
}</langsyntaxhighlight>
{{out}}
<pre>3
Line 731:
 
=={{header|Draco}}==
<langsyntaxhighlight lang="draco">proc nonrec count_jewels(*char jewels, stones) word:
[256] bool jewel;
word count;
Line 758:
show("aA", "aAAbbbb");
show("z", "ZZ")
corp</langsyntaxhighlight>
{{out}}
<pre>'aA' in 'aAAbbbb': 3
Line 767:
{{trans|Swift}}
 
<langsyntaxhighlight lang="dyalect">func countJewels(stones, jewels) {
stones.Iterate().Map(x => jewels.Contains(x) ? 1 : 0).Reduce((x,y) => x + y, 0)
}
print(countJewels("aAAbbbb", "aA"))
print(countJewels("ZZ", "z"))</langsyntaxhighlight>
 
{{out}}
Line 780:
 
=={{header|F_Sharp|F#}}==
<langsyntaxhighlight lang="fsharp">
let fN jewels stones=stones|>Seq.filter(fun n->Seq.contains n jewels)|>Seq.length
printfn "%d" (fN "aA" "aAAbbbb")
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 790:
 
=={{header|Factor}}==
<langsyntaxhighlight lang="factor">USING: kernel prettyprint sequences ;
 
: count-jewels ( stones jewels -- n ) [ member? ] curry count ;
 
"aAAbbbb" "aA"
"ZZ" "z" [ count-jewels . ] 2bi@</langsyntaxhighlight>
{{out}}
<pre>
Line 803:
 
=={{header|Euphoria}}==
<syntaxhighlight lang="euphoria">
<lang Euphoria>
function number_of(object jewels, object stones) -- why limit ourselves to strings?
integer ct = 0
Line 815:
? number_of("z","ZZ")
? number_of({1,"Boo",3},{1,2,3,'A',"Boo",3}) -- might as well send a list of things to find, not just one!
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 824:
 
=={{header|FreeBASIC}}==
<langsyntaxhighlight lang="freebasic">
function contar_joyas(piedras as string, joyas as string) as integer
dim as integer bc, cont: cont = 0
Line 839:
"ABCDEFGHIJKLMNOPQRSTUVWXYZ@abcdefghijklmnopqrstuvwxyz")
print contar_joyas("AB", "")
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 854:
 
'''Outer loop stones, index into jewels:'''
<langsyntaxhighlight lang="go">package main
import (
Line 872:
func main() {
fmt.Println(js("aAAbbbb", "aA"))
}</langsyntaxhighlight>
{{out}}
<pre>3</pre>
 
'''Outer loop jewels, count stones:'''
<langsyntaxhighlight lang="go">func js(stones, jewels string) (n int) {
for _, b := range []byte(jewels) {
n += strings.Count(stones, string(b))
}
return
}</langsyntaxhighlight>
 
'''Construct jewel set, then loop over stones:'''
<langsyntaxhighlight lang="go">func js(stones, jewels string) (n int) {
var jSet ['z' + 1]int
for _, b := range []byte(jewels) {
Line 894:
}
return
}</langsyntaxhighlight>
 
'''Construct stone multiset, then loop over jewels:'''
<langsyntaxhighlight lang="go">func js(stones, jewels string) (n int) {
var sset ['z' + 1]int
for _, b := range []byte(stones) {
Line 906:
}
return
}</langsyntaxhighlight>
 
=={{header|Haskell}}==
<langsyntaxhighlight lang="haskell">jewelCount
:: Eq a
=> [a] -> [a] -> Int
Line 921:
main :: IO ()
main = mapM_ print $ uncurry jewelCount <$> [("aA", "aAAbbbb"), ("z", "ZZ")]
</syntaxhighlight>
</lang>
{{Out}}
<pre>3
Line 928:
Or in terms of filter rather than foldr
 
<langsyntaxhighlight lang="haskell">jewelCount
:: Eq a
=> [a] -> [a] -> Int
Line 937:
main = do
print $ jewelCount "aA" "aAAbbbb"
print $ jewelCount "z" "ZZ"</langsyntaxhighlight>
{{Out}}
<pre>3
Line 943:
 
=={{header|J}}==
<syntaxhighlight lang="j">
<lang J>
NB. jewels sums a raveled equality table
NB. use: x jewels y x are the stones, y are the jewels.
Line 957:
0
</syntaxhighlight>
</lang>
 
=={{header|Java}}==
<langsyntaxhighlight lang="java">import java.util.HashSet;
import java.util.Set;
 
Line 984:
System.out.println(countJewels("ZZ", "z"));
}
}</langsyntaxhighlight>
{{out}}
<pre>3
Line 990:
 
=={{header|Javascript}}==
<langsyntaxhighlight lang="javascript">(() => {
 
// jewelCount :: String -> String -> Int
Line 1,005:
]
.map(x => jewelCount(...x))
})();</langsyntaxhighlight>
{{Out}}
<pre>[3, 0]</pre>
 
=={{header|jq}}==
<langsyntaxhighlight lang="jq">$ jq -n --arg stones aAAbbbb --arg jewels aA '
[$stones|split("") as $s|$jewels|split("") as $j|$s[]|
select(. as $c|$j|contains([$c]))]|length'</langsyntaxhighlight>
 
{{Out}}
Line 1,020:
 
'''Module''':
<langsyntaxhighlight lang="julia">module Jewels
 
count(s, j) = Base.count(x ∈ j for x in s)
 
end # module Jewels</langsyntaxhighlight>
 
'''Main''':
<langsyntaxhighlight lang="julia">@show Jewels.count("aAAbbbb", "aA")
@show Jewels.count("ZZ", "z")</langsyntaxhighlight>
 
{{out}}
Line 1,035:
 
=={{header|Kotlin}}==
<langsyntaxhighlight lang="scala">// Version 1.2.40
 
fun countJewels(s: String, j: String) = s.count { it in j }
Line 1,042:
println(countJewels("aAAbbbb", "aA"))
println(countJewels("ZZ", "z"))
}</langsyntaxhighlight>
 
{{output}}
Line 1,051:
 
=={{header|Lambdatalk}}==
<langsyntaxhighlight lang="scheme">
{def countjewels
{def countjewels.r
Line 1,068:
{countjewels aAAbbbb aA} -> 3
{countjewels ZZ z} -> 0
</syntaxhighlight>
</lang>
 
=={{header|Lua}}==
{{trans|C}}
<langsyntaxhighlight lang="lua">function count_jewels(s, j)
local count = 0
for i=1,#s do
Line 1,084:
 
print(count_jewels("aAAbbbb", "aA"))
print(count_jewels("ZZ", "z"))</langsyntaxhighlight>
{{out}}
<pre>3
Line 1,090:
 
=={{header|Maple}}==
<langsyntaxhighlight Maplelang="maple">count_jewel := proc(stones, jewels)
local count, j, letter:
j := convert(jewels,set):
Line 1,101:
return count:
end proc:
count_jewel("aAAbbbb", "aA")</langsyntaxhighlight>
{{Out|Output}}
<pre>3</pre>
 
=={{header|Mathematica}} / {{header|Wolfram Language}}==
<langsyntaxhighlight Mathematicalang="mathematica">JewelsStones[j_String, s_String] := Count[MemberQ[Characters[j], #] & /@ Characters[s], True]
JewelsStones["aA", "aAAbbbb"]
JewelsStones["ZZ", "z"]</langsyntaxhighlight>
{{out}}
<pre>3
Line 1,114:
 
=={{header|MATLAB}} / {{header|Octave}}==
<syntaxhighlight lang="matlab">
<lang Matlab>
function s = count_jewels(stones,jewels)
s=0;
Line 1,124:
%!test
%! assert(count_jewels('ZZ','z'),0)
</syntaxhighlight>
</lang>
 
=={{header|min}}==
{{works with|min|0.19.6}}
<langsyntaxhighlight lang="min">(('' '' '') => spread if) :if?
 
((1 0 if?) concat map sum) :count
Line 1,137:
 
"aAAbbbb" "aA" count-jewels puts!
"ZZ" "z" count-jewels puts!</langsyntaxhighlight>
{{out}}
<pre>
Line 1,145:
 
=={{header|Modula-2}}==
<langsyntaxhighlight lang="modula2">MODULE Jewels;
FROM FormatString IMPORT FormatString;
FROM Terminal IMPORT WriteString,WriteLn,ReadChar;
Line 1,180:
 
ReadChar
END Jewels.</langsyntaxhighlight>
{{out}}
<pre>3
Line 1,186:
 
=={{header|Nim}}==
<langsyntaxhighlight Nimlang="nim">import sequtils
 
func countJewels(stones, jewels: string): Natural =
Line 1,192:
 
echo countJewels("aAAbbbb", "aA")
echo countJewels("ZZ", "z")</langsyntaxhighlight>
 
{{out}}
Line 1,200:
=={{header|Objeck}}==
{{trans|Java}}
<langsyntaxhighlight Objecklang="objeck">use Collection.Generic;
 
class JewelsStones {
Line 1,224:
return count;
}
}</langsyntaxhighlight>
 
{{out}}
Line 1,233:
 
=={{header|Perl}}==
<langsyntaxhighlight lang="perl">sub count_jewels {
my( $j, $s ) = @_;
my($c,%S);
Line 1,243:
 
print count_jewels 'aA' , 'aAAbbbb';
print count_jewels 'z' , 'ZZ';</langsyntaxhighlight>
{{out}}
<pre>3
0</pre>
===Alternate using regex===
<langsyntaxhighlight lang="perl">#!/usr/bin/perl
 
use strict; # https://rosettacode.org/wiki/Jewels_and_Stones#Perl
Line 1,259:
aAAbbbb abc
ZZ z
END</langsyntaxhighlight>
{{out}}
<pre>
Line 1,268:
 
=={{header|Phix}}==
<!--<langsyntaxhighlight Phixlang="phix">(phixonline)-->
<span style="color: #008080;">function</span> <span style="color: #000000;">count_jewels</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">stones</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">jewels</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span>
Line 1,278:
<span style="color: #0000FF;">?</span><span style="color: #000000;">count_jewels</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"aAAbbbb"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"aA"</span><span style="color: #0000FF;">)</span>
<span style="color: #0000FF;">?</span><span style="color: #000000;">count_jewels</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"ZZ"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"z"</span><span style="color: #0000FF;">)</span>
<!--</langsyntaxhighlight>-->
{{out}}
<pre>
Line 1,288:
===List comprehension===
 
<langsyntaxhighlight Picatlang="picat">jewels_and_stones1(Jewels,Stones) = sum([1 : S in Stones, J in Jewels, S == J]).</langsyntaxhighlight>
 
===Recursion===
<langsyntaxhighlight Picatlang="picat">jewels_and_stones2(Jewels,Stones) = N =>
jewels_and_stones2(Jewels,Stones,0,N).
 
Line 1,307:
N1 = N0
),
jewels_and_stones2_(J,Stones,N1,N).</langsyntaxhighlight>
 
===Foreach loop===
<langsyntaxhighlight Picatlang="picat">jewels_and_stones3(Jewels,Stones) = N =>
N = 0,
foreach(J in Jewels, S in Stones)
Line 1,316:
N := N + 1
end
end.</langsyntaxhighlight>
 
===Test===
<langsyntaxhighlight Picatlang="picat">go =>
Tests = [["aA","aAAbbbb"],
["z","ZZ"]
Line 1,331:
nl
end,
nl.</langsyntaxhighlight>
 
{{out}}
Line 1,347:
===Benchmark===
For a larger test we can see the differences between the three approaches. Here are 100 000 000 random stones and (atmost) 15 jewels (we remove any duplicate jewel).
<langsyntaxhighlight Picatlang="picat">go2 =>
Alpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
Len = Alpha.len,
Line 1,361:
time(println(js2=jewels_and_stones2(Jewels,Stones))),
time(println(js3=jewels_and_stones3(Jewels,Stones))),
nl.</langsyntaxhighlight>
 
{{out}}
Line 1,383:
 
=={{header|PL/M}}==
<langsyntaxhighlight lang="plm">100H:
 
/* FIND JEWELS AMONG STONES */
Line 1,458:
 
CALL BDOS(0,0);
EOF</langsyntaxhighlight>
{{out}}
<pre>'aA' IN 'aAAbbbb': 3
Line 1,465:
=={{header|Prolog}}==
 
<langsyntaxhighlight lang="prolog">
 
:- system:set_prolog_flag(double_quotes,codes) .
Line 1,475:
.
 
</syntaxhighlight>
</lang>
 
{{out}}
Line 1,496:
 
{{works with|SWI Prolog}}
<langsyntaxhighlight lang="prolog">count_jewels(Stones, Jewels, N):-
string_codes(Stones, Scodes),
string_codes(Jewels, Jcodes),
Line 1,514:
count_jewels([S|Stones], Jewels, N, R).
count_jewels([_|Stones], Jewels, N, R):-
count_jewels(Stones, Jewels, N, R).</langsyntaxhighlight>
 
{{out}}
Line 1,530:
 
=={{header|Python}}==
<langsyntaxhighlight lang="python">def countJewels(s, j):
return sum(x in j for x in s)
 
print countJewels("aAAbbbb", "aA")
print countJewels("ZZ", "z")</langsyntaxhighlight>
{{Out}}
<pre>3
Line 1,540:
 
===Python 3 Alternative===
<langsyntaxhighlight lang="python">def countJewels(stones, jewels):
jewelset = set(jewels)
return sum(1 for stone in stones if stone in jewelset)
 
print(countJewels("aAAbbbb", "aA"))
print(countJewels("ZZ", "z"))</langsyntaxhighlight>
{{Out}}
<pre>3
Line 1,551:
 
=={{header|R}}==
<langsyntaxhighlight Rlang="r">J_n_S <- function(stones ="aAAbbbb", jewels = "aA") {
stones <- unlist(strsplit(stones, split = "")) # obtain a character vector
jewels <- unlist(strsplit(jewels, split = ""))
Line 1,560:
print(J_n_S("ZZ", "z"))
print(J_n_S("lgGKJGljglghGLGHlhglghoIPOgfdtrdDCHnvbnmBVC", "fFgGhH"))
</syntaxhighlight>
</lang>
{{Out}}
<pre>> print(J_n_S("aAAbbbb", "aA"))
Line 1,572:
=={{header|Quackery}}==
 
<langsyntaxhighlight Quackerylang="quackery"> [ 0 0 rot
witheach [ bit | ]
rot witheach
Line 1,579:
drop ] is j&s ( $ $ --> n )
 
$ "aAAbbbb" $ "aA" j&s echo</langsyntaxhighlight>
 
{{out}}
Line 1,586:
 
=={{header|Racket}}==
<langsyntaxhighlight lang="racket">#lang racket
 
(define (jewels-and-stones stones jewels)
Line 1,594:
(jewels-and-stones "aAAbbbb" "aA")
(jewels-and-stones "ZZ" "z"))
</syntaxhighlight>
</lang>
{{out}}
<pre>3
Line 1,601:
=={{header|Raku}}==
(formerly Perl 6)
<syntaxhighlight lang="raku" perl6line>sub count-jewels ( Str $j, Str $s --> Int ) {
my %counts_of_all = $s.comb.Bag;
my @jewel_list = $j.comb.unique;
Line 1,609:
 
say count-jewels 'aA' , 'aAAbbbb';
say count-jewels 'z' , 'ZZ';</langsyntaxhighlight>
{{Out}}
<pre>3
Line 1,615:
 
=={{header|Red}}==
<langsyntaxhighlight lang="rebol">Red [
title: "Jewels and stones"
red-version: 0.6.4
Line 1,642:
 
print count-jewels "aAAbbbb" "aA"
print count-jewels "ZZ" "z"</langsyntaxhighlight>
{{out}}
<pre>
Line 1,651:
=={{header|REXX}}==
Programming note: &nbsp; a check is made so that only (Latin) letters are counted as a match.
<langsyntaxhighlight lang="rexx">/*REXX pgm counts how many letters (in the 1st string) are in common with the 2nd string*/
say count('aAAbbbb', "aA")
say count('ZZ' , "z" )
Line 1,662:
if datatype(x, 'M') then if pos(x, jewels)\==0 then #= # + 1
end /*j*/ /* [↑] if a letter and a match, bump #*/
return # /*return the number of common letters. */</langsyntaxhighlight>
{{out|output|text=&nbsp; when using the default inputs:}}
<pre>3
Line 1,668:
 
=={{header|Ring}}==
<langsyntaxhighlight lang="ring"># Project Jewels and Stones
jewels = "aA"
Line 1,686:
next
return num
</syntaxhighlight>
</lang>
Output:
<pre>3
Line 1,692:
 
=={{header|Ruby}}==
<langsyntaxhighlight lang="ruby">stones, jewels = "aAAbbbb", "aA"
 
stones.count(jewels) # => 3
</syntaxhighlight>
</lang>
 
=={{header|Rust}}==
<langsyntaxhighlight lang="rust">fn count_jewels(stones: &str, jewels: &str) -> u8 {
let mut count: u8 = 0;
for cur_char in stones.chars() {
Line 1,711:
println!("{}", count_jewels("ZZ", "z"));
}
</syntaxhighlight>
</lang>
Output:<pre>3
0</pre>
 
=={{header|Scala}}==
<langsyntaxhighlight Scalalang="scala">object JewelsStones extends App {
def countJewels(s: String, j: String): Int = s.count(i => j.contains(i))
 
println(countJewels("aAAbbbb", "aA"))
println(countJewels("ZZ", "z"))
}</langsyntaxhighlight>
{{Out}}See it in running in your browser by [https://scalafiddle.io/sf/Cz1HXAT/0 ScalaFiddle (JavaScript)] or by [https://scastie.scala-lang.org/7ZCCN5hISRuDqLWTKVBHow Scastie (JVM)].
 
=={{header|Sidef}}==
<langsyntaxhighlight lang="ruby">func countJewels(s, j) {
s.chars.count { |c|
j.contains(c)
Line 1,732:
 
say countJewels("aAAbbbb", "aA") #=> 3
say countJewels("ZZ", "z") #=> 0</langsyntaxhighlight>
 
=={{header|Snobol}}==
<langsyntaxhighlight lang="snobol">* See how many jewels are among the stones
DEFINE('JEWELS(JWL,STN)') :(JEWELS_END)
JEWELS JEWELS = 0
Line 1,747:
* Example with no jewels (prints 0)
OUTPUT = JEWELS('z','ZZ')
END</langsyntaxhighlight>
 
{{out}}
Line 1,755:
 
=={{header|SQL}}==
<langsyntaxhighlight SQLlang="sql">-- See how many jewels are among the stones
declare @S varchar(1024) = 'AaBbCcAa'
, @J varchar(1024) = 'aA';
Line 1,788:
end
print 'J='+@J+' S='+@S+' TOTAL = '+cast(@TCNT as varchar(8));
</syntaxhighlight>
</lang>
 
{{out}}
Line 1,796:
 
=={{header|Swift}}==
<langsyntaxhighlight lang="swift">func countJewels(_ stones: String, _ jewels: String) -> Int {
return stones.map({ jewels.contains($0) ? 1 : 0 }).reduce(0, +)
}
 
print(countJewels("aAAbbbb", "aA"))
print(countJewels("ZZ", "z"))</langsyntaxhighlight>
 
{{out}}
Line 1,809:
 
=={{header|Tcl}}==
<langsyntaxhighlight Tcllang="tcl">proc shavej {stones jewels} {
set n 0
foreach c [split $stones {}] {
Line 1,817:
}
puts [shavej aAAbbbb aA]
puts [shavej ZZ z]</langsyntaxhighlight>
{{out}}
3
Line 1,823:
 
=={{header|Terraform}}==
<langsyntaxhighlight lang="hcl">variable "jewels" {
default = "aA"
}
Line 1,839:
output "jewel_count" {
value = length(local.found_jewels)
}</langsyntaxhighlight>
 
{{Out}}
Line 1,860:
 
=={{header|Transd}}==
<langsyntaxhighlight Schemelang="scheme">#lang transd
 
MainModule: {
Line 1,870:
_start: (λ (lout (countJewels "aA" "aAAbbbb"))
(lout (countJewels "b" "BB")))
}</langsyntaxhighlight>
{{out}}
<pre>
Line 1,878:
 
=={{header|VBA}}==
{{trans|Phix}}<langsyntaxhighlight lang="vb">Function count_jewels(stones As String, jewels As String) As Integer
Dim res As Integer: res = 0
For i = 1 To Len(stones)
Line 1,888:
Debug.Print count_jewels("aAAbbbb", "aA")
Debug.Print count_jewels("ZZ", "z")
End Sub</langsyntaxhighlight>{{out}}
<pre> 3
0 </pre>
Line 1,894:
=={{header|Visual Basic .NET}}==
{{trans|C#}}
<langsyntaxhighlight lang="vbnet">Module Module1
 
Function Count(stones As String, jewels As String) As Integer
Line 1,906:
End Sub
 
End Module</langsyntaxhighlight>
{{out}}
<pre>3
Line 1,913:
=={{header|Vlang}}==
{{trans|Go}}
<langsyntaxhighlight lang="vlang">fn js(stones string, jewels string) int {
mut n := 0
for b in stones.bytes() {
Line 1,925:
fn main() {
println(js("aAAbbbb", "aA"))
}</langsyntaxhighlight>
 
{{out}}
Line 1,934:
=={{header|Wren}}==
{{trans|Kotlin}}
<langsyntaxhighlight lang="ecmascript">var countJewels = Fn.new { |s, j| s.count { |c| j.contains(c) } }
 
System.print(countJewels.call("aAAbbbb", "aA"))
System.print(countJewels.call("ZZ", "z"))</langsyntaxhighlight>
 
{{out}}
Line 1,946:
 
=={{header|XPL0}}==
<langsyntaxhighlight XPL0lang="xpl0">string 0; \Use zero-terminated strings
 
func Count(Stones, Jewels);
Line 1,968:
IntOut(0, Count("ZZ", "z")); CrLf(0);
IntOut(0, Count("pack my box with five dozen liquor jugs", "aeiou")); CrLf(0);
]</langsyntaxhighlight>
 
{{out}}
Line 1,978:
 
=={{header|zkl}}==
<langsyntaxhighlight lang="zkl">fcn countJewels(a,b){ a.inCommon(b).len() }</langsyntaxhighlight>
<langsyntaxhighlight lang="zkl">println(countJewels("aAAbbbb", "aA"));
println(countJewels("ZZ", "z"));</langsyntaxhighlight>
{{out}}
<pre>3
10,339

edits