1
私は["a"; "b"; "c"; "a"、 "d"、 "e"]のような文字列リストを持っています。 [「ABCA」、「D」、「E」] yはパターンマッチングと試みるが、私はあまりにも多くの問題を得る:問題は今ABCDE [このような何かを与えられたときということですF#でのパターンマッチングの使い方["a"; "b"; "c"; "a"; "d"; "e"]を["abca"; "d"; "e"]
let rec modifyString lista =
match lista with
|[] -> []
//try to get the place where my string start
|head::tail when head = "a" ->
let tryHard = helperString tail
tryHard
// try to pass a list that is not with 'a'
|primero::segundo ->
[primero] :: modifyString segundo
// Try to get de tail list that i know is after "a"
let rec helperString lista =
match lista with
|[] -> []
|head::tail when tail.Head <> string '"' ->
let aux = head + " "
let aux2 = head :: helperString tail
aux2
今、私はほとんどのソリューションを持って、これを"efg" hij](すべての要素が文字列であると考えると、出力は["a"; "b"; "c"; "d"; "ef"; "G"; "" ";" H "" I "" J "] []のコードは次です:
let rec helperString lista =
match lista with
|head::tail when tail.Head = string '"' ->
head + tail.Head::tail.Tail
|head::tail when tail.Head <> string '"' ->
let aux = helperString tail
head + tail.Head :: tail.Tail
let rec modifyString listab =
match listab with
|[] -> []
|head::tail when tail.Head <> string '"' ->
head :: modifyString tail
|head::tail when tail.Head = string '"' ->
helperString tail.Tail
それで処理されていません。|?[] - > [] I []は尾を渡すと一瞬で空のリストになることを前提としていたがイムだけなので、全体のリストを使用していませんリストのいくつかの要素は| [] - > []? –
を使ってはいけないのですか?申し訳ありません、この1つは: 'head :: tail when tail.Head <> string '"' ' - ' tail.Head == "' –
私がリジッドな方法で行くなら、私は知らない何かを改善しようとする..... –