the second is a set, what is the first?
You can get the answers by looking at the type:
>> type? first [b 1]
== word!
>> type? first [b: 1]
== set-word!
What is the difference
When you use an expression a/b, you write something that acts like a SELECT statement, looking at "any type of word" matching bin the block indicated a, then returning the element after it to the block.
Red Rebol - "" SELECT, ""
>> (first [a:]) = (first [a]) ;-- default comparison
true
>> select [b 1] (quote b)
== 1
>> select [b: 1] (quote b)
== 1
, , /CASE ( " " ):
>> (first [a:]) == (first [a]) ;-- strict comparison
true
>> select/case [b: 1] (quote b)
== none
>> select/case [b: 1] (quote b:)
== 1
, -, , R3-Alpha, , 1% 0,01:
>> 1% = 0.01
== true ;-- both R3-Alpha and Red
>> select [0.01 "test"] 1%
== "test" ;-- in Red
>> select [0.01 "test"] 1%
== none ;-- in R3-Alpha
, .
?
.: -/Notation-wise , , , , , . SET-WORD! , , !. - , (, FUNCTION). , - , SET-WORD.
, . , , . , , ( x: :append/dup/only/10/a)
: PATH! Rebol , , , PICK, :
>> numbers: [3 2 1]
>> pick numbers 3
== 1 ;-- because the 3rd element is a 1
>> select numbers 3
== 2 ;-- because 2 comes after finding a 3
>> numbers/3
== 1 ;-- acts like PICK because (...)/3 uses an INTEGER!
... , , SELECT (), WORD!:
>> words: [a b c]
>> select words 'a
== b ;-- because b is the thing after a in the block
>> pick words 'a
;-- In Rebol this is an error, Red gives NONE at the moment
>> words/a
== b ;-- acts like SELECT because (...)/a uses a WORD!
, SELECT PICK , .
. - .