我正在了解Haskell中的函子,我想知道QuickCheck的Gen
是否是###############################################################################
# Summary: Returns the value of a variable given it's name as a string.
# Required Positional Argument:
# variable_name - The name of the variable to return the value of
# Returns: The value if variable exists; otherwise, empty string ("").
###############################################################################
get_value_of()
{
variable_name=$1
variable_value=""
if set | grep -q "^$variable_name="; then
eval variable_value="\$$variable_name"
fi
echo "$variable_value"
}
test=123
get_value_of test
# 123
test="\$(echo \"something nasty\")"
get_value_of test
# $(echo "something nasty")
的实例?任何见解都会受到赞赏。
答案 0 :(得分:10)
是。 documentation for Gen
中对此进行了描述:在 instances 部分下,它显示了Functor Gen
。
instance Functor Gen where fmap f (MkGen h) = MkGen (\r n -> f (h r n))
MkGen
是Gen
的数据构造函数。它包含类型为QCGen -> Int -> a
的函数。因此,我们基本上要做的是创建一个函数\r n -> f (h r n)
,该函数将对h r n
的结果进行“后处理”。